X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2FMakefile;h=5198283b2e7e25b5abbc158a81a462c29d11ed44;hb=61f8aa37f6d1ba2c2710e5aaf6728ebe360877a0;hp=d332a0413789e72e4f4201c0203fef10d0519069;hpb=f3b08f163992b7be4e597cdd2297ed193d96dc1c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/Makefile b/qcsrc/Makefile index d332a0413..5198283b2 100644 --- a/qcsrc/Makefile +++ b/qcsrc/Makefile @@ -1,30 +1,32 @@ SCM := $(shell if [ -d .svn ]; then echo svn; elif [ -d ../.git ]; then echo git; fi) PERL ?= perl -QCCFLAGS_WATERMARK ?= -DWATERMARK='"$(shell git describe)"' +QCCFLAGS_WATERMARK ?= $(shell git describe) +CPP := cc -xc -E QCC ?= gmqcc NDEBUG ?= 1 - +BUILD_MOD ?= 0 + QCCVERSIONFILE := qccversion.$(shell (cd server && $(QCC) --version) > qccversion.txt && git hash-object qccversion.txt) -# We eventually need to get rid of these. +# We eventually need to get rid of these QCCFLAGS_WTFS ?= \ -Wno-field-redeclared -QCCFLAGS_FEATURES ?= \ - -DVEHICLES_ENABLED=1 \ - -DVEHICLES_USE_ODE=0 \ - -DBUILD_MOD=$(BUILD_MOD) +QCCDEFS ?= \ + -DWATERMARK="$(QCCFLAGS_WATERMARK)" \ + -DNDEBUG=$(NDEBUG) \ + -DBUILD_MOD=$(BUILD_MOD) \ + $(QCCDEFS_EXTRA) +# -Ooverlap-locals is required QCCFLAGS ?= \ -std=gmqcc \ + -Ooverlap-locals \ -O3 \ - -Werror -Wall -Wcpp \ + -Werror -Wall \ $(QCCFLAGS_WTFS) \ - -fftepp -flno -futf8 -fno-bail-on-werror -fftepp-predefs \ + -flno -futf8 -fno-bail-on-werror \ -frelaxed-switch -freturn-assignments \ - $(QCCFLAGS_WATERMARK) \ - -DNDEBUG=$(NDEBUG) \ - $(QCCFLAGS_FEATURES) \ $(QCCFLAGS_EXTRA) # xonotic build system overrides this by command line argument to turn off the update-cvarcount step @@ -39,26 +41,32 @@ qc: ../menu.dat ../progs.dat ../csprogs.dat .PHONY: clean clean: rm -f ../progs.dat ../menu.dat ../csprogs.dat + rm -f tmp/*.qc tmp/*.d tmp/*.txt $(QCCVERSIONFILE): $(RM) qccversion.* echo This file intentionally left blank. > $@ -FILES_CSPROGS = $(shell find lib common client -type f) -../csprogs.dat: $(FILES_CSPROGS) $(QCCVERSIONFILE) +export QCC +export CPP +export QCCDEFS +export QCCFLAGS + +../csprogs.dat: client/progs.inc $(QCCVERSIONFILE) @echo make[1]: Entering directory \`$(PWD)/client\' - cd client && $(QCC) $(QCCFLAGS) -DCSQC -o ../../csprogs.dat progs.inc + sh ./qcc.sh client $@ $< +-include tmp/client.d -FILES_PROGS = $(shell find lib common server -type f) -../progs.dat: $(FILES_PROGS) $(QCCVERSIONFILE) +../progs.dat: server/progs.inc $(QCCVERSIONFILE) @echo make[1]: Entering directory \`$(PWD)/server\' - cd server && $(QCC) $(QCCFLAGS) -DSVQC -o ../../progs.dat progs.inc + sh ./qcc.sh server $@ $< +-include tmp/server.d -FILES_MENU = $(shell find lib common menu -type f) -../menu.dat: $(FILES_MENU) $(QCCVERSIONFILE) +../menu.dat: menu/progs.inc $(QCCVERSIONFILE) @echo make[1]: Entering directory \`$(PWD)/menu\' - cd menu && $(QCC) $(QCCFLAGS) -DMENUQC -o ../../menu.dat progs.inc + sh ./qcc.sh menu $@ $< +-include tmp/menu.d .PHONY: testcase testcase: - cd testcase && $(QCC) $(QCCFLAGS) -DTESTCASE="$$TESTCASE" + cd testcase && $(QCC) $(QCCDEFS) $(QCCFLAGS) -DTESTCASE="$$TESTCASE"