NAME make SYNOPSIS make [filename] DESCRIPTION MAKE performs the necessary actions to generate an updated version of the specified file when some of the files on which it depends have been changed. The dependency relationships and the required actions are described in the text file MKFILE, as in the following... # # make file using DeSmet compiler # try.exe: try.o bind try exec try.o: try.c c88 try try.c: make.exe: make.o bind make exec make.o: make.c c88 make make.c: All the blank lines are required. Lines starting with '#' are comments. Otherwise, MKFILE consists of a series of blocks. Each block is a dependency line followed by zero or more action lines followed by a blank line. A dependency line has a target file name, a colon, and a list of the files on which the target file depends. Whitespace (blanks or tabs) can be added for clarity. Any line can be continued by ending it with '\'. MAKE will find the block in MKFILE which has the specified file as a target and record its dependencies and actions. It will repeat this recursively for each dependent file. It will then check the create times and dates of the files. If any dependent files is newer than the corresponding target file, the actions which follow will be performed. MAKE then updates the create times and repeats for the other blocks. If no filename is specified on the command line, MAKE will make the first file in MKFILE. There are several restrictions not present in the Unix facility of the same name. All dependent files must appear somewhere else as target files. That's why the null entries for try.c and make.c appear above. The blocks must be separated by blank lines. BUGS The DeSmet library doesn't include the function system() used by Holub, so I wrote the one included here. It uses the PATH just like COMMAND.COM. It will find either .COM or .EXE files, but can't run .BAT files. AUTHOR Written by Allen I. Holub (published in Dr. Dobb's Journal #106, August 1985) system() and envsearch() added by James R. Van Zandt.