DATADIR := $(PREFIX)/share
MANDIR := $(DATADIR)/man
+# default flags
+CFLAGS += -Wall -Wextra -Werror -Wstrict-aliasing -Wno-attributes -O2
+
# compiler
CC ?= clang
-observertrans \
-abstract \
-statictrans \
- -castfcnptr
+ -castfcnptr \
+ -shiftimplementation \
+ -shiftnegative \
+ -boolcompare \
+ -infloops \
+ -sysunrecog
#always the right rule
default: all
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' '{}' ';'
splint:
- @splint $(SPLINTFLAGS) *.c *.h
+ @splint $(SPLINTFLAGS) `find . -type f $(SPLINT_MATCH)`
gource:
@gource $(GOURCEFLAGS)