home *** CD-ROM | disk | FTP | other *** search
- Make Version 1.6 90-02-08
-
- This is the source for a public domain version of make. It is very
- similar to the `make' provided 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 Dr. T. Andrews (uunet!cdin-1!cdis-1!tanner)
- Arend van den Brug (arend@philmds@philnl@mcvax)
- Jeff Fried (jfried@informix.com)
- Brian Wilson (island!sun!grenada!dr_unix)
- Kirk Bailey (bailey@mist.cs.orst)
-
- for pointing out problems and improvements.
-
- I have included a makefile and a (rudimentary) default.mk for BSD Unix.
- Updates, additions and corrections are welcomed. The shar distribution
- has the filenames reversed from the ZOO distribution:
-
- ZOO distribution shar distribution
- ---------------------------- --------------------------
- makefile makefile.bsd makefile.dos makefile
- default.mk default.bsd default.dos default.mk
-
-
- I'm assuming 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.mk default.dos
- mv default.bsd default.mk
- make
-
- Alternatively, you can (probably) just use this following command:
-
- make -r -f default.bsd -f makefile.bsd
- ===========================================================================
- This is version 1.6. Here are the changes from 1.5 to 1.6:
-
- accept and ignore the -b option for backwards compatibility.
-
- accept and ignore the -- option for compatibility with SCO Xenix.
-
- set up spawnvp() so that the wait() call works on non-BSD Unix.
-
- translate "$$" to "$" when doing macro expansion.
-
- set "$?" to the set of dependents younger than the current target.
-
- support GnuMake's -W (What If) switch.
-
- strip quotes from around arguments before spawning a command (DOS).
-
- emulate inline-stdin redirection ("<<") on DOS by collecting the
- following commands into a temporary file and placing the filename
- on the command line.
-
- ===========================================================================
- There is a version 1.4 that was submitted to comp.binaries.ibm.pc 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 make.man).
-
- 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 "*?[]()&" 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 $@, $<, $*.
-
- 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 comp.binaries.ibm.pc) 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. Algorithms are
- not copyrightable, so I feel that I have not infringed upon anyone's
- rights. Also, 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
-
- Greg Yachuk Informix Software Inc., Menlo Park, CA 92025
- greggy@informix.com | {uunet,pyramid}!infmx!greggy (415) 926-6300
-