home *** CD-ROM | disk | FTP | other *** search
- Following is a repost of the public domain 'make' that I posted
- to net.sources a couple of months ago. I have fixed a few bugs, and
- added some more features, and the resulting changes amounted to
- about as much text as the whole program (hence the repost).
-
- For those that missed the net.sources posting, this is a public domain
- re-implementation of the UNIX make program. There is no manual included;
- for documentation, refer to a UNIX manual, or the source.
-
- Here is a list of the changes made:
-
- i) If '-' (ignore) or '@' (silent) where used at the start
- of a command, their effect was not turned off for the following
- commands.
- ii) A special target (.SUFFIXES, .PRECIOUS) or a rule (.c.o, .a.o),
- if first in the file would be taken as the default target.
- This resulted in error messages like "Don't know how to
- make .c", because things like .SUFFIXES were being made.
- This was further complicated by ---
- iii) Special target lines with no dependents (ie. .SUFFIXES:\n)
- were not clearing out the existing dependents like
- they should.
- iv) Default rules could not be redefined because of the error
- checking for commands being defined twice. Now you are
- allowed to define a target beinging with '.', having
- no dependents with commands.
- v) The -q option didn't do the time comparison correctly,
- or clear the variable used to keep track of this. Thus
- it didn't work very well.
- vi) The syntax ${..} for macro's supported by UNIX make was
- not supported.
- vii) There wuz a couple of spelling errors.
- viii) When make checked for implicit rules on targets without
- a suffix, there were problems. (Note: The ~ feature of
- UNIX make wasn't and still isn't supported)
- ix) The -n option did not print @ lines like it was supposed to.
- x) :: added. (See UNIX manual)
- xi) $? added. (see UNIX manual)
-