caab47a809b19cdc078626da15943e619515b5a8
[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"' -DCVAR_POPCON
9 FTEQCCFLAGS ?= -Werror -Wno-Q302 -O3 -Ono-c -Ono-cs $(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 FILES_CSPROGS = $(shell find qcsrc/client qcsrc/common qcsrc/warpzonelib -type f -not -name fteqcc.log -not -name qc.asm) qcsrc/server/w_*.qc
42 csprogs.dat: $(FILES_CSPROGS)
43         @echo make[1]: Entering directory \`$(PWD)/qcsrc/client\'
44         cd qcsrc/client && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS)
45
46 FILES_PROGS = $(shell find qcsrc/server qcsrc/common qcsrc/warpzonelib -type f -not -name fteqcc.log -not -name qc.asm) qcsrc/server/w_*.qc
47 progs.dat: $(FILES_PROGS)
48         @echo make[1]: Entering directory \`$(PWD)/qcsrc/server\'
49         cd qcsrc/server && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_PROGS)
50
51 FILES_MENU = $(shell find qcsrc/menu qcsrc/common qcsrc/warpzonelib -type f -not -name fteqcc.log -not -name qc.asm) qcsrc/server/w_*.qc
52 menu.dat: $(FILES_MENU)
53         @echo make[1]: Entering directory \`$(PWD)/qcsrc/menu\'
54         cd qcsrc/menu && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_MENU)
55
56 gfx/menu/default/skinvalues.txt: qcsrc/menu/skin-customizables.inc
57         $(PERL) qcsrc/menu/skin-customizables.inc > gfx/menu/default/skinvalues.txt
58
59 .PHONY: testcase
60 testcase:
61         cd qcsrc/testcase && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS) -DTESTCASE="$$TESTCASE"