]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - include.mk
Fix unary negation (-)
[xonotic/gmqcc.git] / include.mk
index 7624473d886f8b146e144068a74e6acc6790c508..2a385a10c68663aae91a0b2568d5fa6e563bd3ed 100644 (file)
@@ -1,11 +1,13 @@
 # default directories and paths
 DESTDIR :=
-OPTIONAL:=
 PREFIX  := /usr/local
 BINDIR  := $(PREFIX)/bin
 DATADIR := $(PREFIX)/share
 MANDIR  := $(DATADIR)/man
 
+# default flags
+CFLAGS  += -Wall -Wextra -Werror -Wstrict-aliasing -Wno-attributes -g3
+
 # compiler
 CC      ?= clang
 
@@ -13,11 +15,18 @@ CC      ?= clang
 LDFLAGS +=
 LIBS    += -lm
 
+#common objects
+COMMON   = ansi.o util.o hash.o stat.o fs.o opts.o conout.o
+
+#optional flags
+OPTIONAL_CFLAGS  :=
+OPTIONAL_LDFLAGS :=
+
 #objects
-OBJ_C = main.o lexer.o parser.o fs.o stat.o util.o code.o ast.o ir.o conout.o ftepp.o opts.o utf8.o correct.o fold.o intrin.o
-OBJ_P = util.o fs.o conout.o opts.o pak.o stat.o
-OBJ_T = test.o util.o opts.o conout.o fs.o stat.o
-OBJ_X = exec-standalone.o util.o opts.o conout.o fs.o stat.o
+OBJ_C = $(COMMON) main.o lexer.o parser.o code.o ast.o ir.o ftepp.o utf8.o correct.o fold.o intrin.o
+OBJ_P = $(COMMON) pak.o
+OBJ_T = $(COMMON) test.o
+OBJ_X = $(COMMON) exec.o
 
 #gource flags
 GOURCEFLAGS =                 \
@@ -52,6 +61,7 @@ FFMPEGFLAGS=                  \
 
 #splint flags
 SPLINTFLAGS =                 \
+    -preproc                  \
     -redef                    \
     -noeffect                 \
     -nullderef                \
@@ -94,8 +104,13 @@ SPLINTFLAGS =                 \
     -observertrans            \
     -abstract                 \
     -statictrans              \
-    -castfcnptr
-    
+    -castfcnptr               \
+    -shiftimplementation      \
+    -shiftnegative            \
+    -boolcompare              \
+    -infloops                 \
+    -sysunrecog
+
 #always the right rule
 default: all
 
@@ -104,13 +119,26 @@ uninstall:
        rm -f $(DESTDIR)$(BINDIR)/gmqcc
        rm -f $(DESTDIR)$(BINDIR)/qcvm
        rm -f $(DESTDIR)$(BINDIR)/gmqpak
-       rm -f $(DESTDIR)$(MANDIR)/man1/doc/gmqcc.1
-       rm -f $(DESTDIR)$(MANDIR)/man1/doc/qcvm.1
-       rm -f $(DESTDIR)$(MANDIR)/man1/doc/gmqpak.1
+       rm -f $(DESTDIR)$(MANDIR)/man1/gmqcc.1
+       rm -f $(DESTDIR)$(MANDIR)/man1/qcvm.1
+       rm -f $(DESTDIR)$(MANDIR)/man1/gmqpak.1
+
+#style rule
+STYLE_MATCH = \( -name '*.[ch]' -or -name '*.def' -or -name '*.qc' \)
+
+# splint cannot parse the MSVC source
+SPLINT_MATCH = \( -name '*.[ch]' -and ! -name 'msvc.c' -and ! -path './doc/*' \)
+
+style:
+       find . -type f $(STYLE_MATCH) -exec sed -i 's/ *$$//' '{}' ';'
+       find . -type f $(STYLE_MATCH) -exec sed -i -e '$$a\' '{}' ';'
+       find . -type f $(STYLE_MATCH) -exec sed -i 's/\t/    /g' '{}' ';'
 
-whitespace:
-       find . -type f \( -name '*.[ch]' -or -name '*.def' \) -exec sed -i 's/ *$$//' '{}' ';'
+splint:
+       @splint $(SPLINTFLAGS) `find . -type f $(SPLINT_MATCH)`
 
-newline:
-       find . -type f \( -name '*.[ch]' -or -name '*.def' \) -exec sed -i -e '$$a\' '{}' ';'
+gource:
+       @gource $(GOURCEFLAGS)
 
+gource-record:
+       @gource $(GOURCEFLAGS) -o - | ffmpeg $(FFMPEGFLAGS) gource.mp4