--- a/Makefile
+++ b/Makefile
@@ -24,26 +24,26 @@
 VERSION:=$(shell grep ^\#.*TOKE_VERSION < toke/toke.c |cut -f2 -d\" )
 
 all:
-	make -C toke
-	make -C detok
-	make -C romheaders
+	$(MAKE) -C toke
+	$(MAKE) -C detok
+	$(MAKE) -C romheaders
 
 install:
-	make -C toke install
-	make -C detok install
-	make -C romheaders install
+	$(MAKE) -C toke install
+	$(MAKE) -C detok install
+	$(MAKE) -C romheaders install
 
 clean:	
-	make -C toke clean
-	make -C detok clean
-	make -C romheaders clean
-	make -C testsuite clean
+	$(MAKE) -C toke clean
+	$(MAKE) -C detok clean
+	$(MAKE) -C romheaders clean
+	$(MAKE) -C testsuite clean
 
 distclean: clean
-	make -C toke distclean
-	make -C detok distclean
-	make -C romheaders distclean
-	make -C testsuite distclean
+	$(MAKE) -C toke distclean
+	$(MAKE) -C detok distclean
+	$(MAKE) -C romheaders distclean
+	$(MAKE) -C testsuite distclean
 	find . -name "*.gcda" -exec rm -f \{\} \;
 	find . -name "*.gcno" -exec rm -f \{\} \;
 
@@ -51,8 +51,8 @@
 	cp toke/toke testsuite
 	cp detok/detok testsuite
 	cp romheaders/romheaders testsuite
-	make -C testsuite all CygTestLogs=`pwd`/testlogs/testlogs-ppc-linux
-	#make -C testsuite all CygTestLogs=`pwd`/testlogs/testlogs-x86-cygwin
+	$(MAKE) -C testsuite all CygTestLogs=`pwd`/testlogs/testlogs-ppc-linux
+	#$(MAKE) -C testsuite all CygTestLogs=`pwd`/testlogs/testlogs-x86-cygwin
 
 # lcov required for html reports
 coverage:
--- a/romheaders/Makefile
+++ b/romheaders/Makefile
@@ -22,7 +22,7 @@
 #
 
 CC  = gcc
-CFLAGS= -O2 -Wall -W -ansi -I../shared
+CFLAGS += -O2 -Wall -W -ansi -I../shared
 
 SOURCES = romheaders.c ../shared/classcodes.c
 
@@ -31,7 +31,7 @@
 all: romheaders
 
 romheaders: $(SOURCES)
-	$(CC) $(CFLAGS) $(SOURCES) -o $@
+	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(SOURCES) -o $@
 	strip romheaders
 	
 clean:
--- a/toke/Makefile
+++ b/toke/Makefile
@@ -29,8 +29,7 @@
 INCLUDES = -I../shared
 
 # Normal flags
-CFLAGS  = -O2 -Wall -Wno-pointer-sign -fno-strict-aliasing 
-LDFLAGS =
+CFLAGS  += -O2 -Wall -Wno-pointer-sign -fno-strict-aliasing
 
 # Coverage:
 #CFLAGS  := $(CFLAGS) -fprofile-arcs -ftest-coverage
@@ -48,7 +47,6 @@
 
 $(PROGRAM): $(OBJS)
 	$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
-	$(STRIP) -s $(PROGRAM)
 
 clean:
 	rm -f $(OBJS) *~
@@ -57,7 +55,7 @@
 	rm -f $(PROGRAM) .dependencies
 	
 .dependencies: *.c 
-	@$(CC) $(CFLAGS) $(INCLUDES) -MM *.c > .dependencies
+	@$(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES) -MM *.c > .dependencies
 
 documentation:: *.c *.h toke.doxygen
 	@doxygen toke.doxygen
@@ -67,5 +65,5 @@
 -include .dependencies
 
 .c.o:
-	$(CC) -c $(CFLAGS) $(INCLUDES) $< -o $@ 
+	$(CC) $(CPPFLAGS) -c $(CFLAGS) $(INCLUDES) $< -o $@
 
--- a/detok/Makefile
+++ b/detok/Makefile
@@ -29,8 +29,7 @@
 INCLUDES = -I../shared
 
 # Normal Flags:
-CFLAGS  = -O2 -Wall -Wno-pointer-sign 
-LDFLAGS = 
+CFLAGS  += -O2 -Wall -Wno-pointer-sign
 
 # Coverage:
 #CFLAGS  := $(CFLAGS) -fprofile-arcs -ftest-coverage
@@ -47,7 +46,6 @@
 
 $(PROGRAM): $(OBJS)
 	$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
-	$(STRIP) -s $(PROGRAM)
 
 clean:
 	rm -f $(OBJS) *~
@@ -56,12 +54,12 @@
 	rm -f $(PROGRAM) .dependencies
 	
 .dependencies: *.c 
-	@$(CC) $(CFLAGS) $(INCLUDES) -MM *.c > .dependencies
+	@$(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES) -MM *.c > .dependencies
 
 .PHONY: all clean distclean 
 
 -include .dependencies
 
 .c.o:
-	$(CC) -c $(CFLAGS) $(INCLUDES) $< -o $@ 
+	$(CC) $(CPPFLAGS) -c $(CFLAGS) $(INCLUDES) $< -o $@
 
