]> git.sesse.net Git - vlc/blob - extras/tools/tools.mak
demux: mp4: don't display zero trkn total
[vlc] / extras / tools / tools.mak
1 # Copyright (C) 2003-2011 the VideoLAN team
2 #
3 # This file is under the same license as the vlc package.
4
5 include packages.mak
6
7 #
8 # common rules
9 #
10
11 AUTOCONF=$(PREFIX)/bin/autoconf
12 export AUTOCONF
13
14 ifeq ($(shell curl --version >/dev/null 2>&1 || echo FAIL),)
15 download = curl -f -L -- "$(1)" > "$@"
16 else ifeq ($(shell wget --version >/dev/null 2>&1 || echo FAIL),)
17 download = rm -f $@.tmp && \
18         wget --passive -c -p -O $@.tmp "$(1)" && \
19         touch $@.tmp && \
20         mv $@.tmp $@
21 else ifeq ($(which fetch >/dev/null 2>&1 || echo FAIL),)
22 download = rm -f $@.tmp && \
23         fetch -p -o $@.tmp "$(1)" && \
24         touch $@.tmp && \
25         mv $@.tmp $@
26 else
27 download = $(error Neither curl nor wget found!)
28 endif
29
30 UNPACK = $(RM) -R $@ \
31     $(foreach f,$(filter %.tar.gz %.tgz,$^), && tar xvzf $(f)) \
32     $(foreach f,$(filter %.tar.bz2,$^), && tar xvjf $(f)) \
33     $(foreach f,$(filter %.tar.xz,$^), && tar xvJf $(f)) \
34     $(foreach f,$(filter %.zip,$^), && unzip $(f))
35
36 UNPACK_DIR = $(basename $(basename $(notdir $<)))
37 APPLY = (cd $(UNPACK_DIR) && patch -p1) <
38 MOVE = mv $(UNPACK_DIR) $@ && touch $@
39
40 #
41 # package rules
42 #
43
44 # yasm
45
46 yasm-$(YASM_VERSION).tar.gz:
47         $(call download,$(YASM_URL))
48
49 yasm: yasm-$(YASM_VERSION).tar.gz
50         $(UNPACK)
51         $(MOVE)
52
53 .yasm: yasm
54         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
55         touch $@
56
57 CLEAN_FILE += .yasm
58 CLEAN_PKG += yasm
59 DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
60
61 # cmake
62
63 cmake-$(CMAKE_VERSION).tar.gz:
64         $(call download,$(CMAKE_URL))
65
66 cmake: cmake-$(CMAKE_VERSION).tar.gz
67         $(UNPACK)
68         $(MOVE)
69
70 .cmake: cmake
71         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
72         touch $@
73
74 CLEAN_FILE += .cmake
75 CLEAN_PKG += cmake
76 DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz
77
78 # libtool
79
80 libtool-$(LIBTOOL_VERSION).tar.gz:
81         $(call download,$(LIBTOOL_URL))
82
83 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
84         $(UNPACK)
85         $(MOVE)
86
87 .libtool: libtool
88         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
89         ln -sf libtool $(PREFIX)/bin/glibtool
90         ln -sf libtoolize $(PREFIX)/bin/glibtoolize
91         touch $@
92
93 CLEAN_PKG += libtool
94 DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
95 CLEAN_FILE += .libtool
96
97 # GNU tar (with xz support)
98
99 tar-$(TAR_VERSION).tar.bz2:
100         $(call download,$(TAR_URL))
101
102 tar: tar-$(TAR_VERSION).tar.bz2
103         $(UNPACK)
104         $(MOVE)
105
106 .tar: tar
107         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
108         touch $@
109
110 CLEAN_PKG += tar
111 DISTCLEAN_PKG += tar-$(TAR_VERSION).tar.bz2
112 CLEAN_FILE += .tar
113
114 # xz
115
116 xz-$(XZ_VERSION).tar.bz2:
117         $(call download,$(XZ_URL))
118
119 xz: xz-$(XZ_VERSION).tar.bz2
120         $(UNPACK)
121         $(MOVE)
122
123 .xz: xz
124         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
125         touch $@
126
127 CLEAN_PKG += xz
128 DISTCLEAN_PKG += xz-$(XZ_VERSION).tar.bz2
129 CLEAN_FILE += .xz
130
131 # autoconf
132
133 autoconf-$(AUTOCONF_VERSION).tar.gz:
134         $(call download,$(AUTOCONF_URL))
135
136 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
137         $(UNPACK)
138         $(MOVE)
139
140 .autoconf: autoconf .pkg-config
141         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
142         touch $@
143
144 CLEAN_FILE += .autoconf
145 CLEAN_PKG += autoconf
146 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
147
148 # automake
149
150 automake-$(AUTOMAKE_VERSION).tar.gz:
151         $(call download,$(AUTOMAKE_URL))
152
153 automake: automake-$(AUTOMAKE_VERSION).tar.gz
154         $(UNPACK)
155         $(MOVE)
156
157 .automake: automake .autoconf
158         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
159         touch $@
160
161 CLEAN_FILE += .automake
162 CLEAN_PKG += automake
163 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
164
165 # m4
166
167 m4-$(M4_VERSION).tar.gz:
168         $(call download,$(M4_URL))
169
170 m4: m4-$(M4_VERSION).tar.gz
171         $(UNPACK)
172         $(MOVE)
173
174 .m4: m4
175         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
176         touch $@
177
178 CLEAN_FILE += .m4
179 CLEAN_PKG += m4
180 DISTCLEAN_PKG += m4-$(M4_VERSION).tar.gz
181
182 # pkg-config
183
184 pkg-config-$(PKGCFG_VERSION).tar.gz:
185         $(call download,$(PKGCFG_URL))
186
187 pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
188         $(UNPACK)
189         mv pkg-config-lite-$(PKGCFG_VERSION) pkg-config-$(PKGCFG_VERSION)
190         $(MOVE)
191
192 .pkg-config: pkgconfig
193         (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
194         touch $@
195
196 CLEAN_FILE += .pkg-config
197 CLEAN_PKG += pkgconfig
198 DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
199
200 # gas-preprocessor
201 gas-preprocessor-$(GAS_VERSION).tar.gz:
202         $(call download,$(GAS_URL))
203
204 gas: gas-preprocessor-$(GAS_VERSION).tar.gz
205         $(UNPACK)
206         $(MOVE)
207
208 .gas: gas
209         cp gas/gas-preprocessor.pl build/bin/
210         touch $@
211
212 CLEAN_FILE += .gas
213 CLEAN_PKG += gas
214 DISTCLEAN_PKG += yuvi-gas-preprocessor-$(GAS_VERSION).tar.gz
215
216 # Ragel State Machine Compiler
217 ragel-$(RAGEL_VERSION).tar.gz:
218         $(call download,$(RAGEL_URL))
219
220 ragel: ragel-$(RAGEL_VERSION).tar.gz
221         $(UNPACK)
222         $(APPLY) ragel-6.8-javacodegen.patch
223         $(MOVE)
224
225
226 .ragel: ragel
227         (cd ragel; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
228         touch $@
229
230 CLEAN_FILE += .ragel
231 CLEAN_PKG += ragel
232 DISTCLEAN_PKG += ragel-$(RAGEL_VERSION).tar.gz
233
234 # GNU sed
235
236 sed-$(SED_VERSION).tar.bz2:
237         $(call download,$(SED_URL))
238
239 sed: sed-$(SED_VERSION).tar.bz2
240         $(UNPACK)
241         $(MOVE)
242
243 .sed: sed
244         (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
245         touch $@
246
247 CLEAN_PKG += sed
248 DISTCLEAN_PKG += sed-$(SED_VERSION).tar.bz2
249 CLEAN_FILE += .sed
250
251 # Apache ANT
252
253 apache-ant-$(ANT_VERSION).tar.bz2:
254         $(call download,$(ANT_URL))
255
256 ant: apache-ant-$(ANT_VERSION).tar.bz2
257         $(UNPACK)
258         $(MOVE)
259
260 .ant: ant
261         (cp $</bin/* build/bin/; cp $</lib/* build/lib/)
262         touch $@
263
264 CLEAN_PKG += ant
265 DISTCLEAN_PKG += apache-ant-$(ANT_VERSION).tar.bz2
266 CLEAN_FILE += .ant
267
268
269 # Protobuf Protoc
270
271 protobuf-$(PROTOBUF_VERSION).tar.bz2:
272         $(call download,$(PROTOBUF_URL))
273
274 protobuf: protobuf-$(PROTOBUF_VERSION).tar.bz2
275         $(UNPACK)
276         $(MOVE)
277
278 .protoc: protobuf
279         (cd $< && ./configure --prefix="$(PREFIX)" && $(MAKE) && $(MAKE) install)
280         touch $@
281
282 CLEAN_PKG += protobuf
283 DISTCLEAN_PKG += protobuf-$(PROTOBUF_VERSION).tar.bz2
284 CLEAN_FILE += .protoc
285
286 #
287 #
288 #
289
290 clean:
291         rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
292
293 distclean: clean
294         rm -fr $(DISTCLEAN_PKG)
295
296 .PHONY: all clean distclean