Included are 3 patches to make GNU Make version 3.62 work with Linux.



FILES:

-rw-r--r--   1 root     root         2440 Mar 30 00:11 README
-r-xr-xr-x   1 root     root           18 Mar 29 04:23 echo
-r-xr-xr-x   1 root     root           17 Mar 29 04:24 false
-r-xr-xr-x   1 root     root       143981 Mar 29 23:48 make
-rw-r--r--   1 root     root         7571 Mar 30 00:03 make.1
-rw-r--r--   1 root     root         9922 Mar 30 00:04 make.cat
-rw-r--r--   1 root     root         8064 Mar 29 04:22 patch.1
-rw-r--r--   1 root     root         7919 Mar 29 23:53 patch.2
-rw-r--r--   1 root     root         8316 Mar 29 23:55 patch.3
-r-xr-xr-x   1 root     root           17 Mar 29 04:24 true




patch.1:	patch for use with old gcc (1.3?)
patch.2:	patch for use with newgcc (1.40)
patch.3:	patch for use with gcc 2.0 (probably works with 2.1 as well)
make:		GNU make-3.62 executable for Linux 0.95[a]. place in /usr/bin.
make.1:		manual page. mv to /usr/man/man1/make.1
make.cat:	preformatted manual page. mv to /usr/man/cat1/make.1
		 [Only if you don't have nroff.]
false:		return 'false' exit code. /bin/false
true:		return 'true' exit code. /bin/true
echo:		echo arguments.	/bin/echo


If you want to rebuild the executable from the sources, you will
need to get the original GNU make-3.62.tar.Z distribution (available from 
prep.ai.mit.edu and many other ftp sites) and apply the appropriate patch
to it, using 'patch -p0 <patchfile', where 'patchfile' is the name of the 
required patchfile.


NOTES:
	patch #1:	Tested with the original gcc-1.3? as distributed
			with Linux 0.11/0.12. The executable has been tested
			with Linux 0.12, 0.95 and 0.95a. It works fine, but
			there are 2 (minor) problems:

				* When using ctrl-c on recursive makes,
				  the shell may hang. Just press ctrl-c
				  again to fix it. Don't know why.
	 			* getlogin() is missing from the library,
				  so I had to use a substitute. This may fail
				  for users whose uid number is not listed in
				  the /etc/passwd file. [Tricky to login.]
	
	patch #2:	This is a modification of patch #3 to work with 
			gcc-1.40. Tested only for Linux-0.95a. It has the
			same problems as patch #1 but works fine.
			I have tried compiling gmake with 
			flags -DUSG -DPOSIX but the resulting
			executable does not behave correctly. It doesn't
			pass it's arguments correctly in recursive makes.
			Maybe I missed something or maybe there's a bug	
			in our libc-1.40? As soon as gcc2 is stable, I'll
			try again. 

	patch #3:	This patch was posted to alt.os.linux by Simon
			Marlow. He reports none of the problems above.
			I have been unable to verify this, because I don't
			have gcc2, but it's probably ok. Maybe you'll have to
			edit the Makefile a bit, after patching.


PORTING [ggc-1.40 only]:

	SIGCLD was undefined. I #defined it as SIGCHLD
	Some other rare signals were missing too. I put #ifdef around them.

	getlogin() is missing. [I think this is corrected with gcc2 libc.]
	I used: getpwuid(getuid()). Hope this works; it's only used when
	getenv($HOME) fails anyway. Just make sure you leave $HOME defined.


UTILS:
	'Make' scripts often use programs like echo, expr, true, false, etc.
	Some of the trivial ones are included. Place them in /bin. They
	assume /bin/sh is the Bash shell. You may want to get some or all
	of the GNU shellutils for the others.


Good luck!

-Hennus Bergman
a0356514@gufalet.let.rug.nl
csg279@wing1.cs.rug.nl
