X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=BSDmakefile;h=44a742a138d7d9f524d718e53c5a7590fdf11b35;hp=26291b1e73e2d01df4618f3ffd420d98ebf51315;hb=41a76ab91dc6f872b03cd64f51aba86578f330c0;hpb=ba85107a85323647d54c5bc184cee8cb9a704574 diff --git a/BSDmakefile b/BSDmakefile index 26291b1..44a742a 100644 --- a/BSDmakefile +++ b/BSDmakefile @@ -1,142 +1,57 @@ # # This is the Makefile for the BSD flavor # - -DESTDIR := -OPTIONAL := -PREFIX := /usr/local -BINDIR := $(PREFRIX)/bin -DATADIR := $(PREFIX)/share -MANDIR := $(DATADIR)/man +.include "include.mk" GITTEST != git describe --always 2>/dev/null +VALTEST != valgrind --version 2>/dev/null GITINFO := .if $(GITTEST) GITINFO != git describe --always .endif -CC ?= clang - -# linker flags and optional additional libraries if required -LDFLAGS += -LIBS += -lm - -CFLAGS += -Wall -Wextra -Werror -fno-strict-aliasing -DGMQCC_GITINFO=\"$(GITINFO)\"$(OPTIONAL) - .if $(CC) == clang CFLAGS += -Weverything\ -Wno-padded\ -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\ + -Wno-empty-body\ + -Wno-date-time\ + -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 -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 -OBJ_P = util.o fs.o conout.o opts.o pak.o stat.o -OBJ_T = test.o util.o conout.o fs.o stat.o -OBJ_X = exec-standalone.o util.o conout.o fs.o stat.o +.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 GMQCC = gmqcc TESTSUITE = testsuite PAK = gmqpak -#gource flags -GOURCEFLAGS = \ - --date-format "%d %B, %Y" \ - --seconds-per-day 0.01 \ - --auto-skip-seconds 1 \ - --title "GMQCC" \ - --key \ - --camera-mode overview \ - --highlight-all-users \ - --file-idle-time 0 \ - --hide progress,mouse \ - --stop-at-end \ - --max-files 99999999999 \ - --max-file-lag 0.000001 \ - --bloom-multiplier 1.3 \ - --logo doc/html/gmqcc.png \ - -1280x720 - -#ffmpeg flags for gource -FFMPEGFLAGS= \ - -y \ - -r 60 \ - -f image2pipe \ - -vcodec ppm \ - -i - \ - -vcodec libx264 \ - -preset ultrafast \ - -crf 1 \ - -threads 0 \ - -bf 0 - -#splint flags -SPLINTFLAGS = \ - -redef \ - -noeffect \ - -nullderef \ - -usedef \ - -type \ - -mustfreeonly \ - -nullstate \ - -varuse \ - -mustfreefresh \ - -compdestroy \ - -compmempass \ - -nullpass \ - -onlytrans \ - -predboolint \ - -boolops \ - -incondefs \ - -macroredef \ - -retvalint \ - -nullret \ - -predboolothers \ - -globstate \ - -dependenttrans \ - -branchstate \ - -compdef \ - -temptrans \ - -usereleased \ - -warnposix \ - +charindex \ - -kepttrans \ - -unqualifiedtrans \ - +matchanyintegral \ - +voidabstract \ - -nullassign \ - -unrecog \ - -casebreak \ - -retvalbool \ - -retvalother \ - -mayaliasunique \ - -realcompare \ - -observertrans \ - -abstract \ - -statictrans \ - -castfcnptr - #standard rules -default: all - -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) @@ -157,19 +72,23 @@ check: all test: all @ ./$(TESTSUITE) -clean: - rm -f *.o $(GMQCC) $(QCVM) $(TESTSUITE) $(PAK) *.dat gource.mp4 *.exe +strip: $(GMQCC) $(QCVM) $(TESTSUITE) + strip $(GMQCC) + strip $(QCVM) + strip $(TESTSUITE) -splint: - @ splint $(SPLINTFLAGS) *.c *.h +clean: + rm -rf *.o $(GMQCC) $(QCVM) $(TESTSUITE) $(PAK) *.dat gource.mp4 *.exe gm-qcc.tgz ./cov-int -gource: - @ gource $(GOURCEFLAGS) +depend: + @makedepend -Y -f BSDmakefile -w 65536 2> /dev/null ${DEPS:C/\.o/.c/g} -gource-record: - @ gource $(GOURCEFLAGS) -o - | ffmpeg $(FFMPEGFLAGS) gource.mp4 +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 rules install: install-gmqcc install-qcvm install-gmqpak install-doc install-gmqcc: $(GMQCC) install -d -m755 $(DESTDIR)$(BINDIR) @@ -186,29 +105,26 @@ install-doc: install -m644 doc/qcvm.1 $(DESTDIR)$(MANDIR)/man1/ install -m644 doc/gmqpak.1 $(DESTDIR)$(MANDIR)/man1/ -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 - # DO NOT DELETE -util.o: gmqcc.h opts.def -fs.o: gmqcc.h opts.def +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 +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: parser.h gmqcc.h opts.def lexer.h ast.h ir.h stat.o: gmqcc.h opts.def -test.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 -code.o: gmqcc.h opts.def -ast.o: gmqcc.h opts.def ast.h ir.h -ir.o: gmqcc.h opts.def ir.h -ftepp.o: gmqcc.h opts.def lexer.h +test.o: gmqcc.h opts.def platform.h utf8.o: gmqcc.h opts.def -correct.o: gmqcc.h opts.def +util.o: gmqcc.h opts.def platform.h