]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - Makefile
Fix that memory leak that I spent hours trying to find months ago and didn't succeed at.
[xonotic/gmqcc.git] / Makefile
index febebebbb4b397d244a2f36a93f96d9d87a36cbc..2f2b08a61fbfe396ec59b3559abcab35fc317489 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -50,6 +50,12 @@ OBJ_T = test.o util.o conout.o fs.o
 OBJ_C = main.o lexer.o parser.o fs.o
 OBJ_X = exec-standalone.o util.o conout.o fs.o
 
+#we have duplicate object files when dealing with creating a simple list
+#for dependinces. To combat this we use some clever recrusive-make to
+#filter the list and remove duplicates which we use for make depend
+RMDUP = $(if $1,$(firstword $1) $(call RMDUP,$(filter-out $(firstword $1),$1)))
+DEPS := $(call RMDUP, $(OBJ_D) $(OBJ_P) $(OBJ_T) $(OBJ_C) $(OBJ_X))
+
 ifneq ("$(CYGWIN)", "")
        #nullify the common variables that
        #most *nix systems have (for windows)
@@ -123,13 +129,11 @@ SPLINTFLAGS =            \
     -nullstate           \
     -varuse              \
     -mustfreefresh       \
-    -compdestroy         \
     -compmempass         \
     -nullpass            \
     -onlytrans           \
     -predboolint         \
     -boolops             \
-    -exportlocal         \
     -incondefs           \
     -macroredef          \
     -retvalint           \
@@ -142,7 +146,6 @@ SPLINTFLAGS =            \
     -temptrans           \
     -usereleased         \
     -warnposix           \
-    -shiftimplementation \
     +charindex           \
     -kepttrans           \
     -unqualifiedtrans    \
@@ -156,8 +159,6 @@ SPLINTFLAGS =            \
     -mayaliasunique      \
     -realcompare         \
     -observertrans       \
-    -shiftnegative       \
-    -freshtrans          \
     -abstract            \
     -statictrans         \
     -castfcnptr
@@ -203,15 +204,7 @@ gource-record:
 
 depend:
        @makedepend    -Y -w 65536 2> /dev/null \
-               $(subst .o,.c,$(OBJ_D))
-       @makedepend -a -Y -w 65536 2> /dev/null \
-               $(subst .o,.c,$(OBJ_T))
-       @makedepend -a -Y -w 65536 2> /dev/null \
-               $(subst .o,.c,$(OBJ_C))
-       @makedepend -a -Y -w 65536 2> /dev/null \
-               $(subst .o,.c,$(OBJ_X))
-       @makedepend -a -Y -w 65536 2> /dev/null \
-               $(subst .o,.c,$(OBJ_P))
+               $(subst .o,.c,$(DEPS))
 
 #install rules
 install: install-gmqcc install-qcvm install-gmqpak install-doc
@@ -250,23 +243,8 @@ opts.o: gmqcc.h opts.def
 fs.o: gmqcc.h opts.def
 utf8.o: gmqcc.h opts.def
 correct.o: gmqcc.h opts.def
-
+pak.o: gmqcc.h opts.def
 test.o: gmqcc.h opts.def
-util.o: gmqcc.h opts.def
-conout.o: gmqcc.h opts.def
-fs.o: gmqcc.h opts.def
-
 main.o: gmqcc.h opts.def lexer.h
 lexer.o: gmqcc.h opts.def lexer.h
 parser.o: gmqcc.h opts.def lexer.h ast.h ir.h intrin.h
-fs.o: gmqcc.h opts.def
-
-util.o: gmqcc.h opts.def
-conout.o: gmqcc.h opts.def
-fs.o: gmqcc.h opts.def
-
-util.o: gmqcc.h opts.def
-fs.o: gmqcc.h opts.def
-conout.o: gmqcc.h opts.def
-opts.o: gmqcc.h opts.def
-pak.o: gmqcc.h opts.def