45 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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)
 | |
| 
 | |
| Hacked further by Ceriel Jacobs to make it work better. Use this "make" to
 | |
| install ACK under Microsoft Xenix V3.2. Some of the makefiles are just too
 | |
| big for the Xenix "make". Strange, they work on a PDP-11 ...
 | |
| 
 | |
| Made it almost ISO C90 and POSIX portable by Carl Eric Codere, and 
 | |
| also made it safer by using correct datatypes on some library calls.
 |