X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2FMakefile;h=45360c60c19ff9ae2799e8aecb0c8ee20ada8b36;hb=9812a5883c82ff33cf4b889bdf6a094224c0d660;hp=f53707e829f482c39e0f6dcdee0c54d54d4aa3c1;hpb=b09b7687da385e1cdc51e2f63fb7de4c9f9e12a3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/Makefile b/qcsrc/Makefile index f53707e82..45360c60c 100644 --- a/qcsrc/Makefile +++ b/qcsrc/Makefile @@ -1,62 +1,73 @@ 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 +PROGS_OUT ?= $(CURDIR)/.. +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 +QCCDEFS ?= \ + -DWATERMARK="$(QCCFLAGS_WATERMARK)" \ + -DNDEBUG=$(NDEBUG) \ + -DBUILD_MOD=$(BUILD_MOD) \ + $(QCCDEFS_EXTRA) + +# -Ooverlap-locals is required QCCFLAGS ?= \ -std=gmqcc \ - -O3 -flno \ - -Werror -fno-bail-on-werror -Wall \ - -fftepp -fftepp-predefs -Wcpp -futf8 \ + -Ooverlap-locals \ + -O3 \ + -Werror -Wall \ $(QCCFLAGS_WTFS) \ - $(QCCFLAGS_FEATURES) \ - $(QCCFLAGS_EXTRA) $(QCCFLAGS_WATERMARK) - -QCCFLAGS_FEATURES ?= \ - -DVEHICLES_ENABLED=1 \ - -DVEHICLES_USE_ODE=0 + -flno -futf8 -fno-bail-on-werror \ + -frelaxed-switch -freturn-assignments \ + $(QCCFLAGS_EXTRA) # xonotic build system overrides this by command line argument to turn off the update-cvarcount step XON_BUILDSYSTEM = -all: qc .PHONY: all +all: qc .PHONY: qc -qc: ../menu.dat ../progs.dat ../csprogs.dat +qc: $(PROGS_OUT)/menu.dat $(PROGS_OUT)/progs.dat $(PROGS_OUT)/csprogs.dat .PHONY: clean clean: - rm -f ../progs.dat ../menu.dat ../csprogs.dat server/precache-for-csqc.inc + rm -f $(PROGS_OUT)/{csprogs,progs,menu}.dat + rm -f ../.tmp/*.{qc,d,txt} $(QCCVERSIONFILE): $(RM) qccversion.* echo This file intentionally left blank. > $@ -FILES_CSPROGS = $(shell find client common warpzonelib csqcmodellib -type f -not -name fteqcc.log -not -name qc.asm) -../csprogs.dat: $(FILES_CSPROGS) $(QCCVERSIONFILE) - @echo make[1]: Entering directory \`$(PWD)/client\' - cd client && $(QCC) $(QCCFLAGS) -DCSQC +export QCC +export CPP +export QCCDEFS +export QCCFLAGS -server/precache-for-csqc.inc: $(FILES_CSPROGS) - sh collect-precache.sh +$(PROGS_OUT)/csprogs.dat: client/progs.inc $(QCCVERSIONFILE) + @echo make[1]: Entering directory \`$(PWD)/client\' + sh ./qcc.sh client $@ $< +-include ../.tmp/client.d -FILES_PROGS = $(shell find server common warpzonelib csqcmodellib -type f -not -name fteqcc.log -not -name qc.asm) -../progs.dat: $(FILES_PROGS) $(QCCVERSIONFILE) server/precache-for-csqc.inc +$(PROGS_OUT)/progs.dat: server/progs.inc $(QCCVERSIONFILE) @echo make[1]: Entering directory \`$(PWD)/server\' - cd server && $(QCC) $(QCCFLAGS) -DSVQC + sh ./qcc.sh server $@ $< +-include ../.tmp/server.d -FILES_MENU = $(shell find menu common warpzonelib -type f -not -name fteqcc.log -not -name qc.asm) -../menu.dat: $(FILES_MENU) $(QCCVERSIONFILE) +$(PROGS_OUT)/menu.dat: menu/progs.inc $(QCCVERSIONFILE) @echo make[1]: Entering directory \`$(PWD)/menu\' - cd menu && $(QCC) $(QCCFLAGS) -DMENUQC + sh ./qcc.sh menu $@ $< +-include ../.tmp/menu.d .PHONY: testcase testcase: - cd testcase && $(QCC) $(QCCFLAGS) -DTESTCASE="$$TESTCASE" + cd testcase && $(QCC) $(QCCDEFS) $(QCCFLAGS) -DTESTCASE="$$TESTCASE"