1 SCM := $(shell if [ -d .svn ]; then echo svn; elif [ -d ../.git ]; then echo git; fi)
3 QCCFLAGS_WATERMARK ?= -DWATERMARK='"$(shell git describe)"'
5 QCCDEFS_EXTRA ?= -DGMQCC
9 QCCVERSIONFILE := qccversion.$(shell (cd server && $(QCC) --version) > qccversion.txt && git hash-object qccversion.txt)
11 # We eventually need to get rid of these
16 $(QCCFLAGS_WATERMARK) \
18 -DBUILD_MOD=$(BUILD_MOD) \
21 # -Ooverlap-locals is required
28 -flno -futf8 -fno-bail-on-werror \
29 -frelaxed-switch -freturn-assignments \
32 # xonotic build system overrides this by command line argument to turn off the update-cvarcount step
39 qc: ../menu.dat ../progs.dat ../csprogs.dat
43 rm -f ../progs.dat ../menu.dat ../csprogs.dat
44 rm -f tmp/*.qc tmp/*.d tmp/*.txt
48 echo This file intentionally left blank. > $@
50 ../csprogs.dat: client/progs.inc $(QCCVERSIONFILE)
51 $(CC) -xc -I. $(QCCDEFS) -DCSQC -E -MMD -MP -MT $@ -Wall -Wundef -Werror -CC -o tmp/client.qc $<
52 @$(CC) -xc -I. $(QCCDEFS) -DCSQC -E -dM 1>tmp/client_macros.txt -H 2>tmp/client_includes.txt $<
53 @sed -i 's/^# \([[:digit:]]\+\) "\(.*\)".*/\n#pragma file(\2)\n#pragma line(\1)/g' tmp/client.qc
54 @echo make[1]: Entering directory \`$(PWD)/client\'
55 cd client && $(QCC) $(QCCFLAGS) -o ../$@ ../tmp/client.qc
58 ../progs.dat: server/progs.inc $(QCCVERSIONFILE)
59 $(CC) -xc -I. $(QCCDEFS) -DSVQC -E -MMD -MP -MT $@ -Wall -Wundef -Werror -CC -o tmp/server.qc $<
60 @$(CC) -xc -I. $(QCCDEFS) -DSVQC -E -dM 1>tmp/server_macros.txt -H 2>tmp/server_includes.txt $<
61 @sed -i 's/^# \([[:digit:]]\+\) "\(.*\)".*/\n#pragma file(\2)\n#pragma line(\1)/g' tmp/server.qc
62 @echo make[1]: Entering directory \`$(PWD)/server\'
63 cd server && $(QCC) $(QCCFLAGS) -o ../$@ ../tmp/server.qc
66 ../menu.dat: menu/progs.inc $(QCCVERSIONFILE)
67 $(CC) -xc -I. $(QCCDEFS) -DMENUQC -E -MMD -MP -MT $@ -Wall -Wundef -Werror -CC -o tmp/menu.qc $<
68 @$(CC) -xc -I. $(QCCDEFS) -DMENUQC -E -dM 1>tmp/menu_macros.txt -H 2>tmp/menu_includes.txt $<
69 @sed -i 's/^# \([[:digit:]]\+\) "\(.*\)".*/\n#pragma file(\2)\n#pragma line(\1)/g' tmp/menu.qc
70 @echo make[1]: Entering directory \`$(PWD)/menu\'
71 cd menu && $(QCC) $(QCCFLAGS) -o ../$@ ../tmp/menu.qc
76 cd testcase && $(QCC) $(QCCDEFS) $(QCCFLAGS) -DTESTCASE="$$TESTCASE"