[net.lang.mod2] Make Part 1

kpk@gitpyr.UUCP (Kevin P. Kleinfelter) (08/31/86)

This document describes a simple version of "make" which is written in
Modula-2, and works under MS-DOS on the IBM-PC.  It compiles under
Logitech's compiler.

For lack of a better name, I shall refer to this version of make as
"fakemake".

To run fakemake, type

make filename

or

make filename/n


The "/n" option will not execute the "commands" and is primarily used
to debug your makefiles.

There are three files necessary to run fakemake:

make.bat -- batch file to do the whole shebang
make.lod -- compiled and linked modula program to figure dependencies
makefile -- user created file stating dependencies

The source supplied assumes that you have a directory called "\SYS",
in which you store all of your "system" files.  "make.lod" must
be stored in this directory, or you will have to change the batch file.
Fakemake creates a file "\SYS\$MAKE.BAT" and executes it.  If you
don't have a directory "\SYS", you may wish to change the code
to use some other directory.

The "makefile":

Lines in the makefile have the following forms:

file1 : file2 file3 ; action
file1 : file2
file1 ; action

The spaces are required.

The first example states that file1 depends on file2 and file3. "action" will
be taken.

The second example states that file1 depends on file2.

The third example adds "action" to the actions for file1.


CAVEAT:

The whole thing is a horrible kludge, but it seems to work.  I have used
it in developing a compiler, so it has been tested fairly well, but I
make no guarantees.


This program is placed in the public domain.  Anyone may make unlimited
noncommercial use of it.  If anyone can figure out how to make Logitech's
Modula-2 let one invoke a secondary command processor, please feel free
to get rid of the batch nonsense.