diff --git a/compatMakefile b/compatMakefile
index 526cb5f1..a2718138 100644
--- a/compatMakefile
+++ b/compatMakefile
@@ -23,25 +23,19 @@ CFLAGS = $(defines) -g
 LDFLAGS = -g
 
 # Define these for your system as follows:
-# 	-DUSG			System V
 #	-DUSGr3			SVR3 (also define USG)
 #	-DHPUX			HP-UX (also define USG and USGr3 appropriately)
-#	-DHAVE_SYS_WAIT		USG, but have <sys/wait.h> and wait3
-#	-DHAVE_SIGLIST		USG, but have sys_siglist
-#	-DHAVE_DUP2		USG and not USGr3, but have dup2
 #	-DHAVE_VFORK		USG, but have vfork
 #	-DVFORK_MISSING		Not USG, but no vfork
 #	-DNO_MINUS_C_MINUS_O	cc can't handle "cc -c foo.c -o foo.o"
-#	-DPOSIX			A 1003.1 system (or trying to be)
 #	-DNO_ARCHIVES		To disable `ar' archive support.
 #	-DNO_FLOAT		To avoid using floating-point numbers.
 #	-DENUM_BITFIELDS	If the compiler isn't GCC but groks enum foo:2.
 #				Some compilers apparently accept this
 #				without complaint but produce losing code,
 #				so beware.
-#	-DHAVE_ALLOCA_H		If you need to use <alloca.h> for alloca.
 # NeXT 1.0a uses an old version of GCC, which required -D__inline=inline.
-defines =
+defines = @DEFS@
 
 # Define these for your system as follows:
 #	-DUMAX		Encore UMAX
@@ -57,67 +51,60 @@ defines =
 #	-DNLIST_NAME_ARRAY	If `n_name' is an array.
 LOAD_AVG =
 
-# If you don't want archive support, comment these out.
-ARCHIVES = arscan.o ar.o
-ARCHIVES_SRC = arscan.c ar.c
-
 # If you are using the GNU C library, or have the GNU getopt functions in
 # your C library, you can comment these out.
 GETOPT = getopt.o getopt1.o
 GETOPT_SRC = getopt.c getopt1.c getopt.h
 
+# If your system doesn't have alloca, or the one provided is bad,
+# get it from the Emacs distribution and define this.
+ALLOCA = @ALLOCA@
+
 # If your system needs extra libraries loaded in, define them here.
 # System V probably need -lPW for alloca.  HP-UX 7.0's alloca in
 # libPW.a is broken on HP9000s300 and HP9000s400 machines.  Use
-# alloca.c (below) instead on those machines.  SGI Irix needs -lmld
-# for nlist.
-LOADLIBES =
-
-# If your system doesn't have alloca, or the one provided is bad,
-# get it from the Emacs distribution and define these.
-#ALLOCA = alloca.o
-#ALLOCASRC = alloca.c
+# alloca.c instead on those machines.
+LOADLIBES = @LIBS@
 
 # If there are remote execution facilities defined,
 # enable them with switches here (see remote-*.c).
 REMOTE =
 
 # Any extra object files your system needs.
-extras =
+extras = @LIBOBJS@
 
-# Comment this out if POSIX.2 glob is installed on your system
-# (it's in the GNU C Library, so if you're using that, this is
-# not needed at all.)
-globdep = glob/libglob.a
-
-# Library containing POSIX.2 `glob' function.
-# Comment this line out if it's in the C library (which is the case if you
-# are using the GNU C Library), or change it to the appropriate file name
-# or -l switch.
-globlib = $(globdep)
+# Common prefix for machine-independent installed files.
+prefix = /usr/local
+# Common prefix for machine-dependent installed files.
+exec_prefix = /usr/local
 
 # Name under which to install GNU make.
 instname = make
 # Directory to install `make' in.
-bindir = $(prefix)/usr/local/bin
+bindir = $(exec_prefix)/bin
 # Directory to install the man page in.
-mandir = $(prefix)/usr/local/man/manl
+mandir = $(prefix)/man/manl
 # Number to put on the man page filename.
 manext = l
 
 # Install make setgid to this group so it can read /dev/kmem.
 group = kmem
 
+# Program to install `make'.
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+# Program to install the man page.
+INSTALL_DATA = @INSTALL_DATA@
+
 # Programs to make tags files.
-ETAGS = etags -tw
-CTAGS = ctags -tw
+ETAGS = etags -t
+CTAGS = ctags -t
 
 objs = commands.o job.o dir.o file.o load.o misc.o main.o read.o \
        remake.o remote.o rule.o implicit.o default.o variable.o expand.o \
-       function.o vpath.o version.o $(ARCHIVES) $(GETOPT) $(ALLOCA) $(extras)
+       function.o vpath.o version.o $(GETOPT) $(extras)
 srcs = commands.c job.c dir.c file.c load.c misc.c main.c read.c \
        remake.c remote.c rule.c implicit.c default.c variable.c expand.c \
-       function.c vpath.c version.c $(GETOPT_SRC) $(ALLOCASRC) $(ARCHIVES_SRC)\
+       function.c vpath.c version.c $(GETOPT_SRC) \
        commands.h dep.h file.h job.h make.h rule.h variable.h
 
 
@@ -145,8 +132,8 @@ make.dvi: make.texinfo
 make.ps: make.dvi
 	dvi2ps make.dvi > make.ps
 
-make: $(objs) $(globdep)
-	$(CC) $(LDFLAGS) $(objs) $(globlib) $(LOADLIBES) -o make.new
+make: $(objs)
+	$(CC) $(LDFLAGS) $(objs) $(LOADLIBES) -o make.new
 	mv -f make.new make
 
 load.o: load.c
@@ -171,15 +158,14 @@ tags: $(tagsrcs)
 install: $(bindir)/$(instname) $(mandir)/$(instname).$(manext)
 
 $(bindir)/$(instname): make
-	cp make $@.new
+	$(INSTALL_PROGRAM) make $@.new
 # These are necessary for load-average checking to work on most Unix machines.
 	-chgrp $(group) $@.new
 	-chmod g+s $@.new
 	mv $@.new $@
 
 $(mandir)/$(instname).$(manext): make.man
-	-@rm -f $@
-	cp make.man $@
+	$(INSTALL_DATA) make.man $@
 
 .PHONY: clean realclean
 clean: glob-clean