--- Makefile.orig	2011-03-30 07:47:08.000000000 +0800
+++ Makefile	2013-08-21 19:29:51.000000000 +0800
@@ -6,7 +6,7 @@
 #   In fact, CWEB 3.61 is recommended for making hardcopy or PDF documentation.
 
 #   If you prefer optimization to debugging, change -g to something like -O:
-CFLAGS = -g
+CFLAGS ?= -g
 
 #   Uncomment the second line if you use pdftex to bypass .dvi files:
 PDFTEX = dvipdfm
@@ -27,23 +27,23 @@
 	if test -r $*.ch; then cweave $*.w $*.ch; else cweave $*.w; fi
 
 .w.o:
-	make $*.c
-	make $*.o
+	$(MAKE) $*.c
+	$(MAKE) $*.o
 
 .w:
-	make $*.c
-	make $*
+	$(MAKE) $*.c
+	$(MAKE) $*
 
 .w.dvi:
-	make $*.tex
-	make $*.dvi
+	$(MAKE) $*.tex
+	$(MAKE) $*.dvi
 
 .w.ps:
-	make $*.dvi
-	make $*.ps
+	$(MAKE) $*.dvi
+	$(MAKE) $*.ps
 
 .w.pdf:
-	make $*.tex
+	$(MAKE) $*.tex
 	case "$(PDFTEX)" in \
 	 dvipdfm ) tex "\let\pdf+ \input $*"; dvipdfm $* ;; \
 	 pdftex ) pdftex $* ;; \
@@ -73,12 +73,13 @@
 clean:
 	rm -f *~ *.o *.c *.h *.tex *.log *.dvi *.toc *.idx *.scn *.ps core
 
-mmix-pipe.o: mmix-pipe.c abstime
-	./abstime > abstime.h
+abstime.h: abstime
+	./abstime > $@
+
+mmix-pipe.o: mmix-pipe.c abstime.h
 	$(CC) $(CFLAGS) -c mmix-pipe.c
-	rm abstime.h
 
-mmix-config.o: mmix-pipe.o
+mmix-config.o mmix-mem.o: mmix-pipe.o
 
 mmmix:  mmix-arith.o mmix-pipe.o mmix-config.o mmix-mem.o mmix-io.o mmmix.c
 	$(CC) $(CFLAGS) mmmix.c \
@@ -87,10 +88,8 @@
 mmixal: mmix-arith.o mmixal.c
 	$(CC) $(CFLAGS) mmixal.c mmix-arith.o -o mmixal
 
-mmix:   mmix-arith.o mmix-io.o mmix-sim.c abstime
-	./abstime > abstime.h
+mmix:   mmix-arith.o mmix-io.o mmix-sim.c abstime.h
 	$(CC) $(CFLAGS) mmix-sim.c mmix-arith.o mmix-io.o -o mmix
-	rm abstime.h
 
 mmotype: mmotype.c
 	$(CC) $(CFLAGS) mmotype.c -o mmotype