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