Dec 232017
Excellent Make program that is BSD compatible (with C source code) for MSC 5.1 and UNIX C compilers.
File MAKE15.ZIP from The Programmer’s Corner in
Category Miscellaneous Language Source Code
Excellent Make program that is BSD compatible (with C source code) for MSC 5.1 and UNIX C compilers.
File Name File Size Zip Size Zip Type
BUILD.C 5085 2017 deflated
DECL.H 2803 805 deflated
DEFAULT.BSD 1682 645 deflated
DEFAULT.MK 2722 925 deflated
MAKE.C 18499 5555 deflated
MAKE.DOC 17438 5912 deflated
MAKE.H 3429 1252 deflated
MAKEFILE 1304 584 deflated
MAKEFILE.BSD 1184 528 deflated
MANIFEST 564 170 deflated
PARSE.C 17792 5370 deflated
README 4830 2218 deflated
TSTRING.C 5790 2114 deflated
TSTRING.H 1297 513 deflated

Download File MAKE15.ZIP Here

Contents of the README file

Make Version 1.589-10-30

This is a work-alike program, very close to `make' as it exists on Sun
systems. It is compiled with Microsoft C (5.1) and runs on PCDOS 3.3.
It also compiles and runs on BSD 4.2 Unix.

Many thanks to Kirk Bailey ([email protected])
Brian Wilson (island!sun!grenada!dr_unix)
Jeff Fried (ames!culls!jeff)
Arend van den Brug ([email protected]@[email protected])
for pointing out problems and improvements.

I have included a makefile and a (rudimentary) for BSD Unix.
Updates, additions and corrections are welcomed. The shar distribution
has the filenames reversed from the ZOO distribution:

ZOO distributionshar distribution
---------------------------- --------------------------

This is because I assume that the ZOO is used on DOS and the shar on
Unix. If what you got is not appropriate, rename the appropriate files
and make. For example, if you got the DOS version on a Unix system:

mv makefile makefile.dos
mv makefile.bsd makefile
mv default.dos
mv default.bsd

Alternatively, you can (probably) just use this following command:

make -r -f default.bsd -f makefile.bsd

This is version 1.5. There is a version 1.4 that was submitted to by Arend van den Brug. I have incorporated many of
the changes into my version and called it 1.5. These are the changes
from 1.3 to 1.5:
support the -k, -S and -q options (see

correctly support the $(MAKE) macro.

allow target lines to end with a semi-colon and a command.

corrected bugs when allocated strings are over-run.

added "*" and "?" to the list of characters that force the use
of the shell on Unix

These are the changes from 1.2 to 1.3:
don't append shell command lines when encountering multiple
targets of the same name. if this is a *special* target
(e.g. .c.obj), just override. otherwise exit with an error.

flush output before executing the command, so the output comes
out in the right order when redirecting stdout to a file.

if a file is supposedly built, but does not exists, use current time.

exit with an error if a target line does not have a ':'.

don't force a space after "include" in case TAB is used.

D and F modifiers for Directory and Filename of [email protected], $<, $*.

use a dependent file for an implicit rule, if possible.

allow Makefile as well as makefile, for Unix.

always print statements when using -n, even if they start with @.

backquote (`) will force use of a shell, in Unix.

These are the changes from 1.1 to 1.2:
ensure command line macros override makefile macros, even as
makefiles are being read in.

support time checks correctly on MSDOS directories.

use MAKEFLAGS macro, and set it up for subordinate makes.

import environment variables and support -e flag.

handle `-f -' (i.e. makefile from stdin) correctly.

clean up some potential NULL pointer dereferences.

correct errors in handling nested makes.

modify tokenizing routine to correctly handle trailing separators.

the documentation has been re-written

These are the changes from 1.0 to 1.1:
modify prerequisite list handling to correctly allow a target to
appear on multiple target lines.

There is a short story which goes with this offering. Sometime early in
1988, someone (possibly Dan Grayson) posted copyrighted source for a
`make' to Usenet. I used it and modified it somewhat, and then lost my
hard disk. Having found this program to be very useful, I set about
rewriting it from my recollection of the source that I had seen. I have
asked Rahul (moderator of if he could trace the
original submitter, and have also posted a note to the net in c.b.i.p.d,
trying to locate this person. So far, no trace has been found. I
really would like to show this source to him(and hopefully have him
agree that it is not the same as his).

I have based my algorithms on this previous source code. These are not
copyrightable, so I feel that I have not infringed upon anyone's rights.
Also, I feel that I have acted in good faith trying to trace this
person. I hope that recipients of this code feel the same. I am
releasing this into the public domain. You may do anything you wish
with it, even copyright it yourself and try to sell it as your own.
Good luck, and have fun.


Greg YachukInformix Software Inc., Menlo Park, CA(415) 926-6300
{uunet,pyramid}!infmx!greggywhy yes, I DID choose that login myself

 December 23, 2017  Add comments

Leave a Reply