entities.def update; new cvar checksums
[divverent/nexuiz.git] / data / Makefile
1 FTEQCC ?= fteqcc
2 PERL ?= perl
3 PK3NAME ?= `date +../data%Y%m%d.pk3`
4 ZIP ?= 7za a -tzip -mx=9
5 ZIPEXCLUDE ?= -x\!*.pk3 -xr\!\.svn -x\!qcsrc
6 DIFF ?= diff
7
8 FTEQCCFLAGS ?= -Wall -Wno-mundane -O3 -Ono-c -Ono-cs -flo
9 FTEQCCFLAGS_PROGS ?= 
10 FTEQCCFLAGS_MENU ?= 
11
12 # NOTE: use -DUSE_FTE instead of -TFTE here!
13 # It will automagically add an engine check with -TID and then change back to -TFTE
14 FTEQCCFLAGS_CSPROGS ?= 
15
16 # nexuiz svn build system overrides this by command line argument
17 NEX_BUILDSYSTEM =
18
19 all: qc
20
21 .PHONY: update-cvarcount
22 update-cvarcount:
23         [ "$(NEX_BUILDSYSTEM)" = "" ] || [ "$(NEX_BUILDSYSTEM)" = "1" ]
24         [ "$(NEX_BUILDSYSTEM)" != "" ] || { ! [ -f ../misc/netradiant-NexuizPack/nexuiz.game/data/entities.def ] || $(DIFF) ../misc/netradiant-NexuizPack/nexuiz.game/data/entities.def scripts/entities.def || { echo entities.def mismatch, please merge ../misc/netradiant-NexuizPack/nexuiz.game/data/entities.def and scripts/entities.def; exit 1; }; }
25         [ "$(NEX_BUILDSYSTEM)" != "" ] || { DO_NOT_RUN_MAKE=1 sh update-cvarcount.sh; }
26
27 .PHONY: qc
28 qc: menu.dat progs.dat csprogs.dat
29
30 .PHONY: skin
31 skin: gfx/menu/default/skinvalues.txt
32
33 .PHONY: pk3
34 pk3: $(PK3NAME)
35
36 .PHONY: pk3here
37 pk3here: qc
38         $(RM) $(PK3NAME); \
39         set -ex; \
40                 ABSPK3NAME=$(PK3NAME); \
41                 case $$ABSPK3NAME in \
42                         /*) \
43                                 ;; \
44                         *) \
45                                 ABSPK3NAME=$$PWD/$$ABSPK3NAME; \
46                                 ;; \
47                 esac; \
48                 $(ZIP) $(ZIPEXCLUDE) $$ABSPK3NAME .
49
50 .PHONY: clean
51 clean:
52         rm -f progs.dat menu.dat csprogs.dat
53
54 csprogs.dat: qcsrc/client/*.* qcsrc/common/*.* update-cvarcount
55         cd qcsrc/client && $(FTEQCC) $(FTEQCCFLAGS) $(QCFLAGS_CSPROGS)
56
57 progs.dat: qcsrc/server/*.* qcsrc/common/*.* update-cvarcount
58         cd qcsrc/server && $(FTEQCC) $(FTEQCCFLAGS) $(QCFLAGS_PROGS)
59
60 menu.dat: qcsrc/menu/*.* qcsrc/menu/*/*.* qcsrc/common/*.* update-cvarcount
61         cd qcsrc/menu && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_MENU)
62
63 gfx/menu/default/skinvalues.txt: qcsrc/menu/skin-customizables.inc
64         $(PERL) qcsrc/menu/skin-customizables.inc > gfx/menu/default/skinvalues.txt
65
66 $(PK3NAME): qc
67         $(RM) $(PK3NAME)
68         set -ex; \
69                 ABSPK3NAME=$(PK3NAME); \
70                 case $$ABSPK3NAME in \
71                         /*) \
72                                 ;; \
73                         *) \
74                                 ABSPK3NAME=$$PWD/$$ABSPK3NAME; \
75                                 ;; \
76                 esac; \
77                 TDIR=`mktemp -d -t nexuizpk3.XXXXXX`; \
78                 cp -v progs.dat csprogs.dat menu.dat $$TDIR/; \
79                 svn export --force . $$TDIR; \
80                 cd $$TDIR; \
81                 $(RM) -r qcsrc common-spog.pk3; \
82                 $(ZIP) $$ABSPK3NAME .
83
84 .PHONY: log
85 log:
86         cd .. && svn log -r HEAD:BASE
87
88 .PHONY: logv
89 logv:
90         cd .. && svn log -r HEAD:BASE -v
91
92 .PHONY: update
93 update:
94         cd .. && svn up
95
96 .PHONY: logupdate
97 logupdate:
98         cd .. && svn log -r HEAD:BASE && svn up
99
100 .PHONY: logvupdate
101 logvupdate:
102         cd .. && svn log -r HEAD:BASE -v && svn up