X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=include.mk;h=1f90111aa332e63344ad8f30b20f51f2cf291e9a;hp=7624473d886f8b146e144068a74e6acc6790c508;hb=3f4659b5d5a4827602fcbddd322ac1afebd5ccfe;hpb=a31eacf1bd1216b45da8b945c06f58b7fdf910a6 diff --git a/include.mk b/include.mk index 7624473..1f90111 100644 --- a/include.mk +++ b/include.mk @@ -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 -O2 + # 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