]> git.xonotic.org Git - xonotic/xonotic.git/blob - Makefile
GNU sed by default but can be overwritten
[xonotic/xonotic.git] / Makefile
1 DESTDIR ?= 
2 PREFIX ?= /usr/local
3 BINDIR ?= $(PREFIX)/bin
4 LIBDIR ?= $(PREFIX)/lib/xonotic
5 DOCDIR ?= $(PREFIX)/share/doc/xonotic
6 ZIP ?= zip -9
7 INSTALL ?= install
8 ARCH ?= $(shell if [ x"`uname -m`" = x"x86_64" ]; then echo linux64; else echo linux32; fi)
9 LN ?= ln
10 CP ?= cp
11 SED ?= sed
12 BINARY ?= yes
13 SUFFIX ?= $(shell if [ -d .git ]; then echo git; elif [ x"$(BINARY)" = x"yes" ]; then echo zip-binary; else echo zip-source; fi)
14 RIJNDAELDETECT_CONFIGURE ?= $(shell if ! [ -f source/d0_blind_id/d0_rijndael.c ]; then echo --disable-rijndael; fi)
15 RIJNDAELDETECT_MAKE_DP ?= $(shell if [ -f source/d0_blind_id/d0_rijndael.c ]; then echo DP_CRYPTO_RIJNDAEL_STATIC_LIBDIR=$(CURDIR)/source/d0_blind_id/.libs; fi)
16
17
18 .PHONY: all
19 all: all-$(SUFFIX)
20
21 .PHONY: all-git
22 all-git:
23         ./all compile -r
24
25 .PHONY: all-zip-binary
26 all-zip-binary:
27         @echo Nothing to do
28
29 .PHONY: all-zip-source
30 all-zip-source:
31         ( cd source/d0_blind_id && ./configure --enable-static --disable-shared $(RIJNDAELDETECT_CONFIGURE) )
32         $(MAKE) -C source/d0_blind_id
33         $(MAKE) -C source/gmqcc
34         $(MAKE) -C source/qcsrc FTEQCC=$(CURDIR)/source/gmqcc/gmqcc
35         $(MAKE) -C source/darkplaces sv-release DP_CRYPTO_STATIC_LIBDIR=$(CURDIR)/source/d0_blind_id/.libs
36         $(MAKE) -C source/darkplaces cl-release DP_CRYPTO_STATIC_LIBDIR=$(CURDIR)/source/d0_blind_id/.libs
37         $(MAKE) -C source/darkplaces sdl-release DP_CRYPTO_STATIC_LIBDIR=$(CURDIR)/source/d0_blind_id/.libs
38
39
40 .PHONY: clean
41 clean: clean-$(SUFFIX)
42
43 .PHONY: clean-git
44 clean-git:
45         ./all clean
46
47 .PHONY: clean-zip
48 clean-zip-binary:
49         @echo Nothing to do
50
51 .PHONY: clean-zip
52 clean-zip-source:
53         -$(MAKE) -C source/d0_blind_id distclean
54         $(MAKE) -C source/gmqcc clean
55         $(MAKE) -C source/qcsrc clean
56         $(MAKE) -C source/darkplaces clean
57
58
59 .PHONY: install-data
60 install-data: install-data-$(SUFFIX)
61
62 .PHONY: install-data-git
63 install-data-git: all-git
64         $(RM) -rf $(DESTDIR)$(LIBDIR)/data
65         $(INSTALL) -d $(DESTDIR)$(LIBDIR)/data
66         for p in data/*.pk3; do $(INSTALL) $$p $(DESTDIR)$(LIBDIR)/$$p || exit 1; done
67         for p in data/*.pk3dir; do ( cd $$p && $(ZIP) -r $(DESTDIR)$(LIBDIR)/$${p%dir} * ) || exit 1; done
68
69 .PHONY: install-data-zip-binary
70 install-data-zip-binary: all-zip-binary
71         $(RM) -rf $(DESTDIR)$(LIBDIR)/data
72         $(INSTALL) -d $(DESTDIR)$(LIBDIR)/data
73         for p in data/*.pk3; do $(INSTALL) $$p $(DESTDIR)$(LIBDIR)/$$p || exit 1; done
74
75 .PHONY: install-data-zip-source
76 install-data-zip-source: all-zip-source
77         $(RM) -rf $(DESTDIR)$(LIBDIR)/data
78         $(INSTALL) -d $(DESTDIR)$(LIBDIR)/data
79         for p in data/*.pk3; do $(INSTALL) $$p $(DESTDIR)$(LIBDIR)/$$p || exit 1; done
80         for p in data/xonotic-*-data*.pk3; do cd source && $(ZIP) $(DESTDIR)$(LIBDIR)/$$p progs.dat menu.dat csprogs.dat; done
81
82
83 .PHONY: install-engine
84 install-engine: install-engine-$(SUFFIX)
85
86 .PHONY: install-engine-git
87 install-engine-git: all-git
88         $(INSTALL) -d $(DESTDIR)$(LIBDIR)
89         $(INSTALL) xonotic-linux-glx.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-glx.sh
90         $(INSTALL) xonotic-linux-sdl.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-sdl.sh
91         $(INSTALL) xonotic-linux-dedicated.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-dedicated.sh
92         $(INSTALL) darkplaces/darkplaces-sdl $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-sdl
93         $(INSTALL) darkplaces/darkplaces-glx $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-glx
94         $(INSTALL) darkplaces/darkplaces-dedicated $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-dedicated
95
96 .PHONY: install-engine-zip-binary
97 install-engine-zip-binary: all-zip-binary
98         $(INSTALL) -d $(DESTDIR)$(LIBDIR)
99         $(INSTALL) xonotic-linux-glx.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-glx.sh
100         $(INSTALL) xonotic-linux-sdl.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-sdl.sh
101         $(INSTALL) xonotic-linux-dedicated.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-dedicated.sh
102         $(INSTALL) xonotic-$(ARCH)-sdl $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-sdl
103         $(INSTALL) xonotic-$(ARCH)-glx $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-glx
104         $(INSTALL) xonotic-$(ARCH)-dedicated $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-dedicated
105
106 .PHONY: install-engine-zip-source
107 install-engine-zip-source: all-zip-source
108         $(INSTALL) -d $(DESTDIR)$(LIBDIR)
109         $(INSTALL) xonotic-linux-glx.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-glx.sh
110         $(INSTALL) xonotic-linux-sdl.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-sdl.sh
111         $(INSTALL) xonotic-linux-dedicated.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-dedicated.sh
112         $(INSTALL) source/darkplaces/darkplaces-sdl $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-sdl
113         $(INSTALL) source/darkplaces/darkplaces-glx $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-glx
114         $(INSTALL) source/darkplaces/darkplaces-dedicated $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-dedicated
115
116
117 .PHONY: install-links
118 install-links:
119         $(INSTALL) -d $(BINDIR)
120         $(LN) -snf $(LIBDIR)/xonotic-linux-sdl.sh $(DESTDIR)$(BINDIR)/xonotic-sdl
121         $(LN) -snf $(LIBDIR)/xonotic-linux-glx.sh $(DESTDIR)$(BINDIR)/xonotic-glx
122         $(LN) -snf $(LIBDIR)/xonotic-linux-dedicated.sh $(DESTDIR)$(BINDIR)/xonotic-dedicated
123
124
125 .PHONY: install-doc
126 install-doc:
127         $(INSTALL) -d $(DESTDIR)$(DOCDIR)/server
128         $(CP) -R Docs/* $(DESTDIR)$(DOCDIR)/
129         $(CP) -R server/* $(DESTDIR)$(DOCDIR)/server
130
131
132 .PHONY: install
133 install: install-data install-engine install-links install-doc