]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - Makefile
idk.. git told me to commit to be able to merge.
[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 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_WATERMARK ?= -DWATERMARK='"^1$(shell git describe) TEST BUILD"'
10 FTEQCCFLAGS ?= -Werror -Wall -Wno-mundane -O3 -Ono-c -Ono-cs -flo $(FTEQCCFLAGS_EXTRA) $(FTEQCCFLAGS_WATERMARK)
11 FTEQCCFLAGS_PROGS ?= 
12 FTEQCCFLAGS_MENU ?= 
13
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 ?= 
17
18 # xonotic build system overrides this by command line argument to turn off the update-cvarcount step
19 XON_BUILDSYSTEM =
20
21 all: qc
22
23 .PHONY: update-cvarcount
24 update-cvarcount:
25         [ "$(XON_BUILDSYSTEM)" = "" ] || [ "$(XON_BUILDSYSTEM)" = "1" ]
26         [ "$(XON_BUILDSYSTEM)" = "1" ] || { 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/*.* qcsrc/warpzonelib/*.*
60         @echo make[1]: Entering directory \`$(PWD)/qcsrc/client\'
61         cd qcsrc/client && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS)
62
63 progs.dat: qcsrc/server/*.* qcsrc/common/*.* qcsrc/server/*/*.* qcsrc/server/*/*/*.* qcsrc/warpzonelib/*.*
64         @echo make[1]: Entering directory \`$(PWD)/qcsrc/server\'
65         cd qcsrc/server && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_PROGS)
66
67 menu.dat: qcsrc/menu/*.* qcsrc/menu/*/*.* qcsrc/common/*.*
68         @echo make[1]: Entering directory \`$(PWD)/qcsrc/menu\'
69         cd qcsrc/menu && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_MENU)
70
71 gfx/menu/default/skinvalues.txt: qcsrc/menu/skin-customizables.inc
72         $(PERL) qcsrc/menu/skin-customizables.inc > gfx/menu/default/skinvalues.txt
73
74 $(PK3NAME): qc
75         $(RM) $(PK3NAME)
76         set -ex; \
77                 ABSPK3NAME=$(PK3NAME); \
78                 case $$ABSPK3NAME in \
79                         /*) \
80                                 ;; \
81                         *) \
82                                 ABSPK3NAME=$$PWD/$$ABSPK3NAME; \
83                                 ;; \
84                 esac; \
85                 TDIR=`mktemp -d -t xonoticpk3.XXXXXX`; \
86                 cp -v progs.dat csprogs.dat menu.dat $$TDIR/; \
87                 svn export --force . $$TDIR; \
88                 cd $$TDIR; \
89                 $(ZIP) $$ABSPK3NAME .
90
91 .PHONY: testcase
92 testcase:
93         cd qcsrc/testcase && $(FTEQCC) $(FTEQCCFLAGS) $(FTEQCCFLAGS_CSPROGS) -DTESTCASE="$$TESTCASE"
94
95 .PHONY: update commit diff log logv logupdate logvupdate revert
96 update: $(SCM)-update
97 commit: $(SCM)-commit
98 diff: $(SCM)-diff
99 log: $(SCM)-log
100 logv: $(SCM)-logv
101 revert: $(SCM)-revert
102 logupdate: log update
103 logvupdate: logv update
104
105 .PHONY: svn-update
106 svn-update:
107         cd .. && svn update
108
109 .PHONY: svn-commit
110 svn-commit:
111         cd .. && svn commit
112
113 .PHONY: svn-diff
114 svn-diff:
115         cd .. && svn diff
116
117 .PHONY: svn-log
118 svn-log:
119         cd .. && svn log -r HEAD:BASE
120
121 .PHONY: svn-logv
122 svn-logv:
123         cd .. && svn log -r HEAD:BASE -v
124
125 .PHONY: svn-revert
126 svn-revert:
127         svn revert -- $(FILE)
128
129 .PHONY: git-update
130 git-update:
131         git pull origin
132
133 .PHONY: git-commit
134 git-commit:
135         git commit -a || true
136         if echo -n 'Also send to server? Hit Enter for yes, ^C for no. '; read -r L; then \
137                 git config svn-remote.svn.url svn://svn.icculus.org/xonotic; \
138                 git config svn-remote.svn.fetch trunk:refs/remotes/origin/master; \
139                 git svn dcommit; \
140         fi
141
142 .PHONY: git-diff
143 git-diff:
144         git diff; git diff origin/master..HEAD; true
145
146 .PHONY: git-log
147 git-log:
148         git fetch && git log HEAD..origin/master
149
150 .PHONY: git-logv
151 git-logv:
152         git fetch && git log -v HEAD..origin/master
153
154 .PHONY: git-revert
155 git-revert:
156         git checkout -- $(FILE)