diff --git a/src/Makefile.linux b/src/Makefile.linux
index 32dd04f..41b1029 100644
--- a/src/Makefile.linux
+++ b/src/Makefile.linux
@@ -36,7 +36,8 @@ DEFS = $(PLATFORMDEF) $(MBDEFS) $(NLDEFS)
 
 # Commands
 
-CC = gcc $(DEFS) -I $(INCDIR) -Wall
+CFLAGS:=$(CFLAGS) $(DEFS) -I $(INCDIR) -Wall
+CC = gcc
 RM = rm -f
 STRIP = strip
 
@@ -79,131 +80,131 @@ files :  $(BINDIR)/crashmail$(EXESUFFIX) \
 			$(BINDIR)/crashlistout$(EXESUFFIX)
 
 $(BINDIR)/crashmail$(EXESUFFIX) : $(CMOBJS) $(SHOBJS) $(NLOBJS) $(MBOBJS) $(OSLIB)
-	$(CC) -o $(BINDIR)/crashmail$(EXESUFFIX) $(CMOBJS) $(SHOBJS) $(NLOBJS) $(MBOBJS) $(OSLIB)
+	$(CC) $(CFLAGS) -o $(BINDIR)/crashmail$(EXESUFFIX) $(CMOBJS) $(SHOBJS) $(NLOBJS) $(MBOBJS) $(OSLIB)
 	$(STRIP) $(BINDIR)/crashmail$(EXESUFFIX)
 
 $(BINDIR)/crashstats$(EXESUFFIX) : tools/crashstats.c $(SHOBJS) $(OSLIB)
-	$(CC) -o $(BINDIR)/crashstats$(EXESUFFIX) tools/crashstats.c $(SHOBJS) $(OSLIB)
+	$(CC) $(CFLAGS) -o $(BINDIR)/crashstats$(EXESUFFIX) tools/crashstats.c $(SHOBJS) $(OSLIB)
 	$(STRIP) $(BINDIR)/crashstats$(EXESUFFIX)
 
 $(BINDIR)/crashlist$(EXESUFFIX) : tools/crashlist.c $(SHOBJS) $(OSLIB) 
-	$(CC) -o $(BINDIR)/crashlist$(EXESUFFIX) tools/crashlist.c $(SHOBJS) $(OSLIB) 
+	$(CC) $(CFLAGS) -o $(BINDIR)/crashlist$(EXESUFFIX) tools/crashlist.c $(SHOBJS) $(OSLIB) 
 	$(STRIP) $(BINDIR)/crashlist$(EXESUFFIX)
 
 $(BINDIR)/crashgetnode$(EXESUFFIX) : tools/crashgetnode.c $(SHOBJS) $(CMNLLIB) $(OSLIB)
-	$(CC)  -o $(BINDIR)/crashgetnode$(EXESUFFIX) tools/crashgetnode.c $(SHOBJS) $(CMNLLIB) $(OSLIB)
+	$(CC) $(CFLAGS)  -o $(BINDIR)/crashgetnode$(EXESUFFIX) tools/crashgetnode.c $(SHOBJS) $(CMNLLIB) $(OSLIB)
 	$(STRIP) $(BINDIR)/crashgetnode$(EXESUFFIX)
 
 $(BINDIR)/crashmaint$(EXESUFFIX) : tools/crashmaint.c $(SHOBJS) $(OSLIB) $(JAMLIB)
-	$(CC) -o $(BINDIR)/crashmaint$(EXESUFFIX) tools/crashmaint.c $(SHOBJS) $(OSLIB) $(JAMLIB)
+	$(CC) $(CFLAGS) -o $(BINDIR)/crashmaint$(EXESUFFIX) tools/crashmaint.c $(SHOBJS) $(OSLIB) $(JAMLIB)
 	$(STRIP) $(BINDIR)/crashmaint$(EXESUFFIX)
 
 $(BINDIR)/crashwrite$(EXESUFFIX) : tools/crashwrite.c $(SHOBJS) $(OSLIB)
-	$(CC) -o $(BINDIR)/crashwrite$(EXESUFFIX) tools/crashwrite.c $(SHOBJS) $(OSLIB)
+	$(CC) $(CFLAGS) -o $(BINDIR)/crashwrite$(EXESUFFIX) tools/crashwrite.c $(SHOBJS) $(OSLIB)
 	$(STRIP) $(BINDIR)/crashwrite$(EXESUFFIX)                          
 
 $(BINDIR)/crashexport$(EXESUFFIX) : tools/crashexport.c $(SHOBJS) $(OSLIB)
-	$(CC) -o $(BINDIR)/crashexport$(EXESUFFIX) tools/crashexport.c $(SHOBJS) $(OSLIB)
+	$(CC) $(CFLAGS) -o $(BINDIR)/crashexport$(EXESUFFIX) tools/crashexport.c $(SHOBJS) $(OSLIB)
 	$(STRIP) $(BINDIR)/crashexport$(EXESUFFIX)     
 
 $(BINDIR)/crashlistout$(EXESUFFIX) : tools/crashlistout.c $(SHOBJS) $(OSLIB)
-	$(CC) -o $(BINDIR)/crashlistout$(EXESUFFIX) tools/crashlistout.c $(SHOBJS) $(OSLIB)
+	$(CC) $(CFLAGS) -o $(BINDIR)/crashlistout$(EXESUFFIX) tools/crashlistout.c $(SHOBJS) $(OSLIB)
 	$(STRIP) $(BINDIR)/crashlistout$(EXESUFFIX)
 
 # crashmail
 
 $(OBJDIR)/crashmail.o : crashmail/crashmail.c 
-	$(CC) -c crashmail/crashmail.c -o $(OBJDIR)/crashmail.o 
+	$(CC) $(CFLAGS) -c crashmail/crashmail.c -o $(OBJDIR)/crashmail.o 
 
 $(OBJDIR)/logwrite.o : crashmail/logwrite.c 
-	$(CC) -c crashmail/logwrite.c -o $(OBJDIR)/logwrite.o
+	$(CC) $(CFLAGS) -c crashmail/logwrite.c -o $(OBJDIR)/logwrite.o
 
 $(OBJDIR)/dupe.o : crashmail/dupe.c
-	$(CC) -c crashmail/dupe.c -o $(OBJDIR)/dupe.o
+	$(CC) $(CFLAGS) -c crashmail/dupe.c -o $(OBJDIR)/dupe.o
 
 $(OBJDIR)/stats.o : crashmail/stats.c
-	$(CC) -c crashmail/stats.c -o $(OBJDIR)/stats.o
+	$(CC) $(CFLAGS) -c crashmail/stats.c -o $(OBJDIR)/stats.o
 
 $(OBJDIR)/misc.o : crashmail/misc.c
-	$(CC) -c crashmail/misc.c -o $(OBJDIR)/misc.o
+	$(CC) $(CFLAGS) -c crashmail/misc.c -o $(OBJDIR)/misc.o
 
 $(OBJDIR)/safedel.o : crashmail/safedel.c
-	$(CC) -c crashmail/safedel.c -o $(OBJDIR)/safedel.o
+	$(CC) $(CFLAGS) -c crashmail/safedel.c -o $(OBJDIR)/safedel.o
 
 $(OBJDIR)/toss.o : crashmail/toss.c
-	$(CC) -c crashmail/toss.c -o $(OBJDIR)/toss.o
+	$(CC) $(CFLAGS) -c crashmail/toss.c -o $(OBJDIR)/toss.o
 
 $(OBJDIR)/scan.o : crashmail/scan.c
-	$(CC) -c crashmail/scan.c -o $(OBJDIR)/scan.o
+	$(CC) $(CFLAGS) -c crashmail/scan.c -o $(OBJDIR)/scan.o
 
 $(OBJDIR)/pkt.o : crashmail/pkt.c
-	$(CC) -c crashmail/pkt.c -o $(OBJDIR)/pkt.o
+	$(CC) $(CFLAGS) -c crashmail/pkt.c -o $(OBJDIR)/pkt.o
 
 $(OBJDIR)/memmessage.o : crashmail/memmessage.c
-	$(CC) -c crashmail/memmessage.c -o $(OBJDIR)/memmessage.o
+	$(CC) $(CFLAGS) -c crashmail/memmessage.c -o $(OBJDIR)/memmessage.o
 
 $(OBJDIR)/handle.o : crashmail/handle.c
-	$(CC) -c crashmail/handle.c -o $(OBJDIR)/handle.o
+	$(CC) $(CFLAGS) -c crashmail/handle.c -o $(OBJDIR)/handle.o
 
 $(OBJDIR)/node4dpat.o : crashmail/node4dpat.c
-	$(CC) -c crashmail/node4dpat.c -o $(OBJDIR)/node4dpat.o
+	$(CC) $(CFLAGS) -c crashmail/node4dpat.c -o $(OBJDIR)/node4dpat.o
 
 $(OBJDIR)/config.o : crashmail/config.c
-	$(CC) -c crashmail/config.c -o $(OBJDIR)/config.o
+	$(CC) $(CFLAGS) -c crashmail/config.c -o $(OBJDIR)/config.o
 
 $(OBJDIR)/outbound.o : crashmail/outbound.c
-	$(CC) -c crashmail/outbound.c -o $(OBJDIR)/outbound.o
+	$(CC) $(CFLAGS) -c crashmail/outbound.c -o $(OBJDIR)/outbound.o
 
 $(OBJDIR)/areafix.o : crashmail/areafix.c
-	$(CC) -c crashmail/areafix.c -o $(OBJDIR)/areafix.o
+	$(CC) $(CFLAGS) -c crashmail/areafix.c -o $(OBJDIR)/areafix.o
 
 $(OBJDIR)/filter.o : crashmail/filter.c
-	$(CC) -c crashmail/filter.c -o $(OBJDIR)/filter.o
+	$(CC) $(CFLAGS) -c crashmail/filter.c -o $(OBJDIR)/filter.o
 
 # shared
 
 $(OBJDIR)/jblist.o : shared/jblist.c
-	$(CC) -c shared/jblist.c -o $(OBJDIR)/jblist.o
+	$(CC) $(CFLAGS) -c shared/jblist.c -o $(OBJDIR)/jblist.o
 
 $(OBJDIR)/jbstrcpy.o : shared/jbstrcpy.c
-	$(CC) -c shared/jbstrcpy.c -o $(OBJDIR)/jbstrcpy.o
+	$(CC) $(CFLAGS) -c shared/jbstrcpy.c -o $(OBJDIR)/jbstrcpy.o
 
 $(OBJDIR)/mystrncpy.o : shared/mystrncpy.c
-	$(CC) -c shared/mystrncpy.c -o $(OBJDIR)/mystrncpy.o
+	$(CC) $(CFLAGS) -c shared/mystrncpy.c -o $(OBJDIR)/mystrncpy.o
 
 $(OBJDIR)/parseargs.o : shared/parseargs.c
-	$(CC) -c shared/parseargs.c -o $(OBJDIR)/parseargs.o
+	$(CC) $(CFLAGS) -c shared/parseargs.c -o $(OBJDIR)/parseargs.o
 
 $(OBJDIR)/path.o : shared/path.c
-	$(CC) -c shared/path.c -o $(OBJDIR)/path.o
+	$(CC) $(CFLAGS) -c shared/path.c -o $(OBJDIR)/path.o
 
 $(OBJDIR)/node4d.o : shared/node4d.c
-	$(CC) -c shared/node4d.c -o $(OBJDIR)/node4d.o
+	$(CC) $(CFLAGS) -c shared/node4d.c -o $(OBJDIR)/node4d.o
 
 $(OBJDIR)/expr.o : shared/expr.c
-	$(CC) -c shared/expr.c -o $(OBJDIR)/expr.o
+	$(CC) $(CFLAGS) -c shared/expr.c -o $(OBJDIR)/expr.o
 
 # mb
 
 $(OBJDIR)/mb.o : crashmail/mb.c
-	$(CC) -c crashmail/mb.c -o $(OBJDIR)/mb.o
+	$(CC) $(CFLAGS) -c crashmail/mb.c -o $(OBJDIR)/mb.o
 
 $(OBJDIR)/mb_msg.o : crashmail/mb_msg.c
-	$(CC) -c crashmail/mb_msg.c -o $(OBJDIR)/mb_msg.o
+	$(CC) $(CFLAGS) -c crashmail/mb_msg.c -o $(OBJDIR)/mb_msg.o
 
 $(OBJDIR)/mb_jam.o : crashmail/mb_jam.c
-	$(CC) -c crashmail/mb_jam.c -o $(OBJDIR)/mb_jam.o
+	$(CC) $(CFLAGS) -c crashmail/mb_jam.c -o $(OBJDIR)/mb_jam.o
 
 # nl
 
 $(OBJDIR)/nl.o : crashmail/nl.c
-	$(CC) -c crashmail/nl.c -o $(OBJDIR)/nl.o
+	$(CC) $(CFLAGS) -c crashmail/nl.c -o $(OBJDIR)/nl.o
 
 $(OBJDIR)/nl_cmnl.o : crashmail/nl_cmnl.c
-	$(CC) -c crashmail/nl_cmnl.c -o $(OBJDIR)/nl_cmnl.o
+	$(CC) $(CFLAGS) -c crashmail/nl_cmnl.c -o $(OBJDIR)/nl_cmnl.o
 
 $(OBJDIR)/nl_v7p.o : crashmail/nl_v7p.c
-	$(CC) -c crashmail/nl_v7p.c -o $(OBJDIR)/nl_v7p.o
+	$(CC) $(CFLAGS) -c crashmail/nl_v7p.c -o $(OBJDIR)/nl_v7p.o
 
 
 # Clean
diff --git a/src/cmnllib/Makefile.linux b/src/cmnllib/Makefile.linux
index 1523e6c..031ff13 100644
--- a/src/cmnllib/Makefile.linux
+++ b/src/cmnllib/Makefile.linux
@@ -1,16 +1,16 @@
 INCDIR = ../
 
-CC = gcc -DPLATFORM_LINUX -I $(INCDIR) -Wall
+CC = gcc
 AR = ar -ru
 RM = rm -f
 
 OBJS    = cmnllib.o
 
 cmnllib.a : $(OBJS) 
-	$(AR) cmnllib.a $(OBJS)
+	$(AR) -ru cmnllib.a $(OBJS)
 	
 cmnllib.o: cmnllib.c
-	$(CC) -c cmnllib.c -o cmnllib.o
+	$(CC) -DPLATFORM_LINUX -I $(INCDIR) -Wall -c cmnllib.c -o cmnllib.o
 
 clean :
 	$(RM) *.o *.a
diff --git a/src/jamlib/Makefile.linux b/src/jamlib/Makefile.linux
index 63cc9b7..40b05c7 100644
--- a/src/jamlib/Makefile.linux
+++ b/src/jamlib/Makefile.linux
@@ -1,29 +1,30 @@
-CC = gcc -D__LINUX__ -Wall
+CFLAGS:= $(CFLAGS) -D__LINUX__ -Wall
+CC = gcc $(CFLAGS)
 AR = ar -ru
 RM = rm -f
 
 OBJS = crc32.o mbase.o message.o lastread.o subpack.o structrw.o
 
 jamlib.a : $(OBJS) 
-	$(AR) jamlib.a $(OBJS)
+	$(AR) -ru jamlib.a $(OBJS)
 
 crc32.o:    crc32.c jam.h
-	$(CC) -c crc32.c -o crc32.o
+	$(CC) $(CFLAGS) -c crc32.c -o crc32.o
 
 mbase.o:    mbase.c jam.h
-	$(CC) -c mbase.c -o mbase.o
+	$(CC) $(CFLAGS) -c mbase.c -o mbase.o
 
 message.o:  message.c jam.h
-	$(CC) -c message.c -o message.o
+	$(CC) $(CFLAGS) -c message.c -o message.o
 
 lastread.o: lastread.c jam.h
-	$(CC) -c lastread.c -o lastread.o
+	$(CC) $(CFLAGS) -c lastread.c -o lastread.o
 
 subpack.o:  subpack.c jam.h
-	$(CC) -c subpack.c -o subpack.o
+	$(CC) $(CFLAGS) -c subpack.c -o subpack.o
 
 structrw.o:  structrw.c jam.h
-	$(CC) -c structrw.c -o structrw.o
+	$(CC) $(CFLAGS) -c structrw.c -o structrw.o
 
 clean:
 	$(RM) *.o *.a
diff --git a/src/oslib_linux/Makefile b/src/oslib_linux/Makefile
index 90e2f53..790de47 100644
--- a/src/oslib_linux/Makefile
+++ b/src/oslib_linux/Makefile
@@ -1,34 +1,35 @@
 INCDIR = ../
 
-CC = gcc -Wall -I $(INCDIR) -DPLATFORM_LINUX
+CFLAGS:=$(CFLAGS) -Wall -I $(INCDIR) -DPLATFORM_LINUX
+CC = gcc
 AR = ar -ru
 RM = rm -f
 
 OBJS = osfile.o osdir.o osmisc.o osmem.o ospattern.o os.o
 
 oslib.a : $(OBJS) 
-	$(AR)	oslib.a $(OBJS)
+	$(AR) -ru oslib.a $(OBJS)
 
 # os
 
 osfile.o : osfile.c
-	$(CC) -c osfile.c -o osfile.o
+	$(CC) $(CFLAGS) -c osfile.c -o osfile.o
  
 osmisc.o : osmisc.c
-	$(CC) -c osmisc.c -o osmisc.o
+	$(CC) $(CFLAGS) -c osmisc.c -o osmisc.o
 
 osdir.o : osdir.c
-	$(CC) -c osdir.c -o osdir.o
+	$(CC) $(CFLAGS) -c osdir.c -o osdir.o
 
 osmem.o : osmem.c
-	$(CC) -c osmem.c -o osmem.o
+	$(CC) $(CFLAGS) -c osmem.c -o osmem.o
 
 ospattern.o : ospattern.c
-	$(CC) -c ospattern.c -o ospattern.o
+	$(CC) $(CFLAGS) -c ospattern.c -o ospattern.o
 
 os.o : os.c
-	$(CC) -c os.c -o os.o
+	$(CC) $(CFLAGS) -c os.c -o os.o
 
 clean :
 	$(RM) *.o *.a
-	
+