Merge remote branch 'origin/fruitiex/fruitbalance'
[xonotic/xonotic-data.pk3dir.git] / Makefile
1 SCM := $(shell if [ -d .svn ]; then echo svn; elif [ -d ../.git ]; then echo git; fi)
2 FTEQCC ?= fteqcc
3 PERL ?= perl
4 ZIP ?= 7za a -tzip -mx=9
5 ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc
6 DIFF ?= diff
7
8 FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"^1$(shell git describe) TEST BUILD"'
9 FTEQCCFLAGS ?= -Werror -Wall -Wno-mundane -O3 -Ono-c -Ono-cs -flo $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
10 FTEQCCFLAGS_PROGS ?= 
11 FTEQCCFLAGS_MENU ?= 
12
13 # NOTE: use -DUSE_FTE instead of -TFTE here!
14 # It will automagically add an engine check with -TID and then change back to -TFTE
15 FTEQCCFLAGS_CSPROGS ?= 
16
17 # xonotic build system overrides this by command line argument to turn off the update-cvarcount step
18 XON_BUILDSYSTEM =
19
20 all: qc
21
22 .PHONY: update-cvarcount
23 update-cvarcount:
24         [ "$(XON_BUILDSYSTEM)" = "" ] || [ "$(XON_BUILDSYSTEM)" = "1" ]
25         [ "$(XON_BUILDSYSTEM)" = "1" ] || { DO_NOT_RUN_MAKE=1 sh update-cvarcount.sh; }
26
27 .PHONY: qc
28 qc: update-cvarcount
29         $(MAKE) qc-recursive
30
31 .PHONY: qc-recursive
32 qc-recursive: menu.dat progs.dat csprogs.dat
33
34 .PHONY: skin
35 skin: gfx/menu/default/skinvalues.txt
36
37 .PHONY: clean
38 clean:
39         rm -f progs.dat menu.dat csprogs.dat
40
41 csprogs.dat: qcsrc/client/*.* qcsrc/common/*.* qcsrc/warpzonelib/*.*
42         @echo make[1]: Entering directory \`$(PWD)/qcsrc/client\'
43         cd qcsrc/client && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS)
44
45 progs.dat: qcsrc/server/*.* qcsrc/common/*.* qcsrc/server/*/*.* qcsrc/server/*/*/*.* qcsrc/warpzonelib/*.*
46         @echo make[1]: Entering directory \`$(PWD)/qcsrc/server\'
47         cd qcsrc/server && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_PROGS)
48
49 menu.dat: qcsrc/menu/*.* qcsrc/menu/*/*.* qcsrc/common/*.*
50         @echo make[1]: Entering directory \`$(PWD)/qcsrc/menu\'
51         cd qcsrc/menu && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_MENU)
52
53 gfx/menu/default/skinvalues.txt: qcsrc/menu/skin-customizables.inc
54         $(PERL) qcsrc/menu/skin-customizables.inc > gfx/menu/default/skinvalues.txt
55
56 .PHONY: testcase
57 testcase:
58         cd qcsrc/testcase && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS) -DTESTCASE="$$TESTCASE"