X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=BSDmakefile;h=584c2f19c719a1ff066517df9280782a9bffa364;hp=654fe5f09a56201f2c5397e3d7f8765e799cf6aa;hb=1497191e3ce1da4de07884f6fe13be3e2faaa261;hpb=de8974d03e6bd77f5aaad0c655d975986c3fa230 diff --git a/BSDmakefile b/BSDmakefile index 654fe5f..584c2f1 100644 --- a/BSDmakefile +++ b/BSDmakefile @@ -4,13 +4,14 @@ .include "include.mk" GITTEST != git describe --always 2>/dev/null +VALTEST != valgrind --version 2>/dev/null GITINFO := .if $(GITTEST) GITINFO != git describe --always .endif -CFLAGS += -Wall -Wextra -Werror -fno-strict-aliasing -DGMQCC_GITINFO=\"$(GITINFO)\"$(OPTIONAL) +CFLAGS += -Wall -Wextra -Werror -Wstrict-aliasing -Wno-attributes .if $(CC) == clang CFLAGS += -Weverything\ @@ -18,18 +19,29 @@ CFLAGS += -Wall -Wextra -Werror -fno-strict-aliasing -DGMQCC_GITINFO=\"$(GITI -Wno-format-nonliteral\ -Wno-disabled-macro-expansion\ -Wno-conversion\ - -Wno-missing-prototypes\ -Wno-float-equal\ -Wno-unknown-warning-option\ - -Wstrict-prototypes + -Wno-cast-align\ + -Wno-assign-enum\ + -pedantic-errors .else -. if $(CC) == tcc - CFLAGS += -Wstrict-prototypes -pedantic-errors +. if $(CC) != g++ + CFLAGS += -Wmissing-prototypes -Wstrict-prototypes +. endif + +. if $(CC) != tcc + CFLAGS += -pedantic-errors . else CFLAGS += -Wno-pointer-sign -fno-common . endif .endif +.if !$(VALTEST) + CFLAGS += -DNVALGRIND +.endif + + +CFLAGS += -DGMQCC_GITINFO=\"$(GITINFO)\" $(OPTIONAL) DEPS != for i in $(OBJ_C) $(OBJ_P) $(OBJ_T) $(OBJ_X); do echo $$i; done | sort | uniq QCVM = qcvm @@ -38,11 +50,8 @@ TESTSUITE = testsuite PAK = gmqpak #standard rules -c.o: - $(CC) -c ${.IMPSRC} -o ${.TARGET} $(CPPFLAGS) $(CFLAGS) - -exec-standalone.o: exec.c - $(CC) -c ${.ALLSRC} -o ${.TARGET} $(CPPFLAGS) $(CFLAGS) -DQCVM_EXECUTOR=1 +c.o: ${.IMPSRC} + $(CC) -c ${.IMPSRC} -o ${.TARGET} $(CFLAGS) $(CPPFLAGS) $(QCVM): $(OBJ_X) $(CC) -o ${.TARGET} ${.IMPSRC} $(LDFLAGS) $(LIBS) $(OBJ_X) @@ -63,21 +72,23 @@ check: all test: all @ ./$(TESTSUITE) -clean: - rm -f *.o $(GMQCC) $(QCVM) $(TESTSUITE) $(PAK) *.dat gource.mp4 *.exe - -splint: - @ splint $(SPLINTFLAGS) *.c *.h - -gource: - @ gource $(GOURCEFLAGS) +strip: $(GMQCC) $(QCVM) $(TESTSUITE) + strip $(GMQCC) + strip $(QCVM) + strip $(TESTSUITE) -gource-record: - @ gource $(GOURCEFLAGS) -o - | ffmpeg $(FFMPEGFLAGS) gource.mp4 +clean: + rm -rf *.o $(GMQCC) $(QCVM) $(TESTSUITE) $(PAK) *.dat gource.mp4 *.exe gm-qcc.tgz ./cov-int depend: @makedepend -Y -f BSDmakefile -w 65536 2> /dev/null ${DEPS:C/\.o/.c/g} +coverity: + @cov-build --dir cov-int $(MAKE) -f BSDmakefile + @tar czf gm-qcc.tgz cov-int + @rm -rf cov-int + @echo gm-qcc.tgz generated, submit for analysis + install: install-gmqcc install-qcvm install-gmqpak install-doc install-gmqcc: $(GMQCC) install -d -m755 $(DESTDIR)$(BINDIR) @@ -96,19 +107,24 @@ install-doc: # DO NOT DELETE -ast.o: gmqcc.h opts.def ast.h ir.h +ansi.o: platform.h gmqcc.h opts.def +ast.o: gmqcc.h opts.def ast.h ir.h parser.h lexer.h code.o: gmqcc.h opts.def conout.o: gmqcc.h opts.def correct.o: gmqcc.h opts.def -fs.o: gmqcc.h opts.def +exec.o: gmqcc.h opts.def +fold.o: ast.h ir.h gmqcc.h opts.def parser.h lexer.h +fs.o: gmqcc.h opts.def platform.h ftepp.o: gmqcc.h opts.def lexer.h +hash.o: gmqcc.h opts.def +intrin.o: parser.h gmqcc.h opts.def lexer.h ast.h ir.h ir.o: gmqcc.h opts.def ir.h lexer.o: gmqcc.h opts.def lexer.h main.o: gmqcc.h opts.def lexer.h opts.o: gmqcc.h opts.def pak.o: gmqcc.h opts.def -parser.o: gmqcc.h opts.def lexer.h ast.h ir.h intrin.h +parser.o: parser.h gmqcc.h opts.def lexer.h ast.h ir.h stat.o: gmqcc.h opts.def -test.o: gmqcc.h opts.def +test.o: gmqcc.h opts.def platform.h utf8.o: gmqcc.h opts.def -util.o: gmqcc.h opts.def +util.o: gmqcc.h opts.def platform.h