e94705df62d64716452a725e058ade4e0113c261
[voretournament/voretournament.git] / data / Makefile
1 SCM := $(shell if [ -d .svn ]; then echo svn; elif [ -d ../.git ]; then echo git; fi)\r
2 FTEQCC ?= fteqcc\r
3 PERL ?= perl\r
4 PK3NAME ?= `date +../data%Y%m%d.pk3`\r
5 ZIP ?= 7za a -tzip -mx=9\r
6 ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc\r
7 DIFF ?= diff\r
8 \r
9 FTEQCCFLAGS ?= -Werror -Wall -Wno-mundane -O3 -Ono-c -Ono-cs -flo\r
10 FTEQCCFLAGS_PROGS ?= \r
11 FTEQCCFLAGS_MENU ?= \r
12 \r
13 # NOTE: use -DUSE_FTE instead of -TFTE here!\r
14 # It will automagically add an engine check with -TID and then change back to -TFTE\r
15 FTEQCCFLAGS_CSPROGS ?= \r
16 \r
17 # nexuiz svn build system overrides this by command line argument\r
18 NEX_BUILDSYSTEM =\r
19 \r
20 all: qc\r
21 \r
22 .PHONY: update-cvarcount\r
23 update-cvarcount:\r
24         [ "$(NEX_BUILDSYSTEM)" = "" ] || [ "$(NEX_BUILDSYSTEM)" = "1" ]\r
25         [ "$(NEX_BUILDSYSTEM)" != "" ] || { ! [ -f ../misc/netradiant-NexuizPack/nexuiz.game/data/entities.def ] || $(DIFF) scripts/entities.def ../misc/netradiant-NexuizPack/nexuiz.game/data/entities.def || { echo entities.def mismatch, please merge ../misc/netradiant-NexuizPack/nexuiz.game/data/entities.def and scripts/entities.def; exit 1; }; }\r
26         [ "$(NEX_BUILDSYSTEM)" != "" ] || { DO_NOT_RUN_MAKE=1 sh update-cvarcount.sh; }\r
27 \r
28 .PHONY: qc\r
29 qc: update-cvarcount\r
30         $(MAKE) qc-recursive\r
31 \r
32 .PHONY: qc-recursive\r
33 qc-recursive: menu.dat progs.dat csprogs.dat\r
34 \r
35 .PHONY: skin\r
36 skin: gfx/menu/default/skinvalues.txt\r
37 \r
38 .PHONY: pk3\r
39 pk3: $(PK3NAME)\r
40 \r
41 .PHONY: pk3here\r
42 pk3here: qc\r
43         $(RM) $(PK3NAME); \\r
44         set -ex; \\r
45                 ABSPK3NAME=$(PK3NAME); \\r
46                 case $$ABSPK3NAME in \\r
47                         /*) \\r
48                                 ;; \\r
49                         *) \\r
50                                 ABSPK3NAME=$$PWD/$$ABSPK3NAME; \\r
51                                 ;; \\r
52                 esac; \\r
53                 $(ZIP) $(ZIPEXCLUDE) $$ABSPK3NAME .\r
54 \r
55 .PHONY: clean\r
56 clean:\r
57         rm -f progs.dat menu.dat csprogs.dat\r
58 \r
59 csprogs.dat: qcsrc/client/*.* qcsrc/common/*.* qcsrc/warpzonelib/*.*\r
60         cd qcsrc/client && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS)\r
61 \r
62 progs.dat: qcsrc/server/*.* qcsrc/common/*.* qcsrc/server/*/*.* qcsrc/server/*/*/*.* qcsrc/warpzonelib/*.*\r
63         cd qcsrc/server && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_PROGS)\r
64 \r
65 menu.dat: qcsrc/menu/*.* qcsrc/menu/*/*.* qcsrc/common/*.*\r
66         cd qcsrc/menu && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_MENU)\r
67 \r
68 gfx/menu/default/skinvalues.txt: qcsrc/menu/skin-customizables.inc\r
69         $(PERL) qcsrc/menu/skin-customizables.inc > gfx/menu/default/skinvalues.txt\r
70 \r
71 $(PK3NAME): qc\r
72         $(RM) $(PK3NAME)\r
73         set -ex; \\r
74                 ABSPK3NAME=$(PK3NAME); \\r
75                 case $$ABSPK3NAME in \\r
76                         /*) \\r
77                                 ;; \\r
78                         *) \\r
79                                 ABSPK3NAME=$$PWD/$$ABSPK3NAME; \\r
80                                 ;; \\r
81                 esac; \\r
82                 TDIR=`mktemp -d -t nexuizpk3.XXXXXX`; \\r
83                 cp -v progs.dat csprogs.dat menu.dat $$TDIR/; \\r
84                 svn export --force . $$TDIR; \\r
85                 cd $$TDIR; \\r
86                 $(ZIP) $$ABSPK3NAME .\r
87 \r
88 .PHONY: testcase\r
89 testcase:\r
90         cd qcsrc/testcase && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS) -DTESTCASE="$$TESTCASE"\r
91 \r
92 .PHONY: update commit diff log logv logupdate logvupdate revert\r
93 update: $(SCM)-update\r
94 commit: $(SCM)-commit\r
95 diff: $(SCM)-diff\r
96 log: $(SCM)-log\r
97 logv: $(SCM)-logv\r
98 revert: $(SCM)-revert\r
99 logupdate: log update\r
100 logvupdate: logv update\r
101 \r
102 .PHONY: svn-update\r
103 svn-update:\r
104         cd .. && svn update\r
105 \r
106 .PHONY: svn-commit\r
107 svn-commit:\r
108         cd .. && svn commit\r
109 \r
110 .PHONY: svn-diff\r
111 svn-diff:\r
112         cd .. && svn diff\r
113 \r
114 .PHONY: svn-log\r
115 svn-log:\r
116         cd .. && svn log -r HEAD:BASE\r
117 \r
118 .PHONY: svn-logv\r
119 svn-logv:\r
120         cd .. && svn log -r HEAD:BASE -v\r
121 \r
122 .PHONY: svn-revert\r
123 svn-revert:\r
124         svn revert -- $(FILE)\r
125 \r
126 .PHONY: git-update\r
127 git-update:\r
128         git pull origin\r
129 \r
130 .PHONY: git-commit\r
131 git-commit:\r
132         git commit -a || true\r
133         if echo -n 'Also send to server? Hit Enter for yes, ^C for no. '; read -r L; then \\r
134                 git config svn-remote.svn.url svn://svn.icculus.org/nexuiz; \\r
135                 git config svn-remote.svn.fetch trunk:refs/remotes/origin/master; \\r
136                 git svn dcommit; \\r
137         fi\r
138 \r
139 .PHONY: git-diff\r
140 git-diff:\r
141         git diff; git diff origin/master..HEAD; true\r
142 \r
143 .PHONY: git-log\r
144 git-log:\r
145         git fetch && git log HEAD..origin/master\r
146 \r
147 .PHONY: git-logv\r
148 git-logv:\r
149         git fetch && git log -v HEAD..origin/master\r
150 \r
151 .PHONY: git-revert\r
152 git-revert:\r
153         git checkout -- $(FILE)\r