X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2FMakefile;h=a10ccd2fd11f5ed318068b0c60e18807f0c14495;hp=3e98265a9521945ec5049ac54d552d2d2dc62e40;hb=6a28c11c8abd729c7f95ad7050d204aa2453d2ff;hpb=e8635f71c9052f25b69c3f99ef956631d49fcc9b diff --git a/qcsrc/Makefile b/qcsrc/Makefile index 3e98265a95..a10ccd2fd1 100644 --- a/qcsrc/Makefile +++ b/qcsrc/Makefile @@ -3,42 +3,20 @@ PERL ?= perl QCCFLAGS_WATERMARK ?= -DWATERMARK='"$(shell git describe)"' -DCVAR_POPCON=1 QCC ?= gmqcc -VERSION_MESSAGE = $(shell cd server && $(QCC) --version --help) -ifneq (,$(findstring GMQCC,$(VERSION_MESSAGE))) -# this is gmqcc -QCCFLAGS ?= \ - -std=fteqcc \ - -Werror -Wall \ +QCCVERSIONFILE := qccversion.$(shell $(QCC) --version > qccversion.txt && git hash-object qccversion.txt) + +# We eventually need to get rid of these. +QCCFLAGS_WTFS ?= \ -Wno-field-redeclared \ -Wno-double-declaration \ - -Wno-uninitialized-global \ - -O3 \ - -fadjust-vector-fields \ - -fftepp \ - -fftepp-predefs \ - -frelaxed-switch \ - -fshort-logic \ - -fno-perl-logic \ - -ftranslatable-strings \ - -fno-initialized-nonconstants \ - -fno-assign-function-types \ - -flno \ - -fcorrect-ternary \ - -fno-single-vector-defs \ - -fcorrect-logic \ - -ftrue-empty-strings \ - -fno-false-empty-strings \ - -futf8 \ - -fno-bail-on-werror \ - -floop-labels \ - -funtyped-nil \ - -fno-permissive \ - -fvariadic-args \ + +QCCFLAGS ?= \ + -std=gmqcc \ + -O3 -flno \ + -Werror -fno-bail-on-werror -Wall \ + -fftepp -fftepp-predefs -Wcpp -futf8 \ + $(QCCFLAGS_WTFS) \ $(QCCFLAGS_EXTRA) $(QCCFLAGS_WATERMARK) -else -# this. is. fteqccccccccccccccccccc! -QCCFLAGS ?= -Werror -Wno-Q302 -O3 -Ono-return_only -fno-fastarrays $(QCCFLAGS_EXTRA) $(QCCFLAGS_WATERMARK) -endif # xonotic build system overrides this by command line argument to turn off the update-cvarcount step XON_BUILDSYSTEM = @@ -54,20 +32,27 @@ qc-recursive: ../menu.dat ../progs.dat ../csprogs.dat .PHONY: clean clean: - rm -f ../progs.dat ../menu.dat ../csprogs.dat + rm -f ../progs.dat ../menu.dat ../csprogs.dat server/precache-for-csqc.inc + +$(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) $(wildcard server/w_*.qc) -../csprogs.dat: $(FILES_CSPROGS) +../csprogs.dat: $(FILES_CSPROGS) $(QCCVERSIONFILE) @echo make[1]: Entering directory \`$(PWD)/client\' cd client && $(QCC) $(QCCFLAGS) +server/precache-for-csqc.inc: $(FILES_CSPROGS) + sh collect-precache.sh + FILES_PROGS = $(shell find server common warpzonelib csqcmodellib -type f -not -name fteqcc.log -not -name qc.asm) $(wildcard server/w_*.qc) -../progs.dat: $(FILES_PROGS) +../progs.dat: $(FILES_PROGS) $(QCCVERSIONFILE) server/precache-for-csqc.inc @echo make[1]: Entering directory \`$(PWD)/server\' cd server && $(QCC) $(QCCFLAGS) FILES_MENU = $(shell find menu common warpzonelib -type f -not -name fteqcc.log -not -name qc.asm) $(wildcard server/w_*.qc) -../menu.dat: $(FILES_MENU) +../menu.dat: $(FILES_MENU) $(QCCVERSIONFILE) @echo make[1]: Entering directory \`$(PWD)/menu\' cd menu && $(QCC) $(QCCFLAGS)