1 SCM := $(shell if [ -d .svn ]; then echo svn; elif [ -d ../.git ]; then echo git; fi)
4 PK3NAME ?= `date +../data%Y%m%d.pk3`
5 ZIP ?= 7za a -tzip -mx=9
6 ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc
9 FTEQCCFLAGS_WATERMARK ?= -DWATERMARK='"^1$(shell git describe) TEST BUILD"'
10 FTEQCCFLAGS ?= -Werror -Wall -Wno-mundane -O3 -Ono-c -Ono-cs -flo $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
14 # NOTE: use -DUSE_FTE instead of -TFTE here!
15 # It will automagically add an engine check with -TID and then change back to -TFTE
16 FTEQCCFLAGS_CSPROGS ?=
18 # xonotic svn build system overrides this by command line argument
23 .PHONY: update-cvarcount
25 [ "$(NEX_BUILDSYSTEM)" = "" ] || [ "$(NEX_BUILDSYSTEM)" = "1" ]
26 [ "$(NEX_BUILDSYSTEM)" != "" ] || { ! [ -f ../misc/netradiant-XonoticPack/xonotic.game/data/entities.def ] || $(DIFF) scripts/entities.def ../misc/netradiant-XonoticPack/xonotic.game/data/entities.def || { echo entities.def mismatch, please merge ../misc/netradiant-XonoticPack/xonotic.game/data/entities.def and scripts/entities.def; exit 1; }; }
27 [ "$(NEX_BUILDSYSTEM)" != "" ] || { DO_NOT_RUN_MAKE=1 sh update-cvarcount.sh; }
34 qc-recursive: menu.dat progs.dat csprogs.dat
37 skin: gfx/menu/default/skinvalues.txt
46 ABSPK3NAME=$(PK3NAME); \
47 case $$ABSPK3NAME in \
51 ABSPK3NAME=$$PWD/$$ABSPK3NAME; \
54 $(ZIP) $(ZIPEXCLUDE) $$ABSPK3NAME .
58 rm -f progs.dat menu.dat csprogs.dat
60 csprogs.dat: qcsrc/client/*.* qcsrc/common/*.* qcsrc/warpzonelib/*.*
61 @echo make[1]: Entering directory \`$(PWD)/qcsrc/client\'
62 cd qcsrc/client && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS)
64 progs.dat: qcsrc/server/*.* qcsrc/common/*.* qcsrc/server/*/*.* qcsrc/server/*/*/*.* qcsrc/warpzonelib/*.*
65 @echo make[1]: Entering directory \`$(PWD)/qcsrc/server\'
66 cd qcsrc/server && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_PROGS)
68 menu.dat: qcsrc/menu/*.* qcsrc/menu/*/*.* qcsrc/common/*.*
69 @echo make[1]: Entering directory \`$(PWD)/qcsrc/menu\'
70 cd qcsrc/menu && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_MENU)
72 gfx/menu/default/skinvalues.txt: qcsrc/menu/skin-customizables.inc
73 $(PERL) qcsrc/menu/skin-customizables.inc > gfx/menu/default/skinvalues.txt
78 ABSPK3NAME=$(PK3NAME); \
79 case $$ABSPK3NAME in \
83 ABSPK3NAME=$$PWD/$$ABSPK3NAME; \
86 TDIR=`mktemp -d -t xonoticpk3.XXXXXX`; \
87 cp -v progs.dat csprogs.dat menu.dat $$TDIR/; \
88 svn export --force . $$TDIR; \
94 cd qcsrc/testcase && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS) -DTESTCASE="$$TESTCASE"
96 .PHONY: update commit diff log logv logupdate logvupdate revert
102 revert: $(SCM)-revert
103 logupdate: log update
104 logvupdate: logv update
120 cd .. && svn log -r HEAD:BASE
124 cd .. && svn log -r HEAD:BASE -v
128 svn revert -- $(FILE)
136 git commit -a || true
137 if echo -n 'Also send to server? Hit Enter for yes, ^C for no. '; read -r L; then \
138 git config svn-remote.svn.url svn://svn.icculus.org/xonotic; \
139 git config svn-remote.svn.fetch trunk:refs/remotes/origin/master; \
145 git diff; git diff origin/master..HEAD; true
149 git fetch && git log HEAD..origin/master
153 git fetch && git log -v HEAD..origin/master
157 git checkout -- $(FILE)