contrib: gcrypt: Disable asm for NACL
[vlc.git] / extras / tools / tools.mak
bloba7a459fb96c6a795eb91a02f009448f09a6c2323
1 # Copyright (C) 2003-2011 the VideoLAN team
3 # This file is under the same license as the vlc package.
5 include packages.mak
8 # common rules
11 AUTOCONF=$(PREFIX)/bin/autoconf
12 export AUTOCONF
14 ifeq ($(shell curl --version >/dev/null 2>&1 || echo FAIL),)
15 download = curl -f -L -- "$(1)" > "$@.tmp" && touch $@.tmp && mv $@.tmp $@
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
30 download_pkg = $(call download,$(VIDEOLAN)/$(2)/$(lastword $(subst /, ,$(@)))) || \
31 ( $(call download,$(1)) && echo "Please upload package $(lastword $(subst /, ,$(@))) to our FTP" ) \
32 && grep $(@) SHA512SUMS| shasum -a 512 -c
34 UNPACK = $(RM) -R $@ \
35 $(foreach f,$(filter %.tar.gz %.tgz,$^), && tar xvzf $(f)) \
36 $(foreach f,$(filter %.tar.bz2,$^), && tar xvjf $(f)) \
37 $(foreach f,$(filter %.tar.xz,$^), && tar xvJf $(f)) \
38 $(foreach f,$(filter %.zip,$^), && unzip $(f))
40 UNPACK_DIR = $(patsubst %.tar,%,$(basename $(notdir $<)))
41 APPLY = (cd $(UNPACK_DIR) && patch -p1) <
42 MOVE = mv $(UNPACK_DIR) $@ && touch $@
45 # package rules
48 # yasm
50 yasm-$(YASM_VERSION).tar.gz:
51 $(call download_pkg,$(YASM_URL),yasm)
53 yasm: yasm-$(YASM_VERSION).tar.gz
54 $(UNPACK)
55 $(MOVE)
57 .yasm: yasm
58 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
59 touch $@
61 CLEAN_FILE += .yasm
62 CLEAN_PKG += yasm
63 DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
65 # cmake
67 cmake-$(CMAKE_VERSION).tar.gz:
68 $(call download_pkg,$(CMAKE_URL),cmake)
70 cmake: cmake-$(CMAKE_VERSION).tar.gz
71 $(UNPACK)
72 $(MOVE)
74 .cmake: cmake
75 (cd $<; ./configure --prefix=$(PREFIX) $(CMAKEFLAGS) && $(MAKE) && $(MAKE) install)
76 touch $@
78 CLEAN_FILE += .cmake
79 CLEAN_PKG += cmake
80 DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz
82 # libtool
84 libtool-$(LIBTOOL_VERSION).tar.gz:
85 $(call download_pkg,$(LIBTOOL_URL),libtool)
87 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
88 $(UNPACK)
89 $(APPLY) libtool-2.4.2-bitcode.patch
90 $(APPLY) libtool-2.4.2-san.patch
91 $(APPLY) libtool-2.4.6-clang-libs.patch
92 $(MOVE)
94 .libtool: libtool .automake
95 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
96 ln -sf libtool $(PREFIX)/bin/glibtool
97 ln -sf libtoolize $(PREFIX)/bin/glibtoolize
98 touch $@
100 CLEAN_PKG += libtool
101 DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
102 CLEAN_FILE += .libtool
104 # GNU tar (with xz support)
106 tar-$(TAR_VERSION).tar.bz2:
107 $(call download_pkg,$(TAR_URL),tar)
109 tar: tar-$(TAR_VERSION).tar.bz2
110 $(UNPACK)
111 $(MOVE)
113 .tar: tar
114 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
115 touch $@
117 CLEAN_PKG += tar
118 DISTCLEAN_PKG += tar-$(TAR_VERSION).tar.bz2
119 CLEAN_FILE += .tar
121 # xz
123 xz-$(XZ_VERSION).tar.bz2:
124 $(call download_pkg,$(XZ_URL),xz)
126 xz: xz-$(XZ_VERSION).tar.bz2
127 $(UNPACK)
128 $(MOVE)
130 .xz: xz
131 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install && rm $(PREFIX)/lib/pkgconfig/liblzma.pc)
132 touch $@
134 CLEAN_PKG += xz
135 DISTCLEAN_PKG += xz-$(XZ_VERSION).tar.bz2
136 CLEAN_FILE += .xz
138 # autoconf
140 autoconf-$(AUTOCONF_VERSION).tar.gz:
141 $(call download_pkg,$(AUTOCONF_URL),autoconf)
143 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
144 $(UNPACK)
145 $(MOVE)
147 .autoconf: autoconf .pkg-config
148 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
149 touch $@
151 CLEAN_FILE += .autoconf
152 CLEAN_PKG += autoconf
153 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
155 # automake
157 automake-$(AUTOMAKE_VERSION).tar.gz:
158 $(call download_pkg,$(AUTOMAKE_URL),automake)
160 automake: automake-$(AUTOMAKE_VERSION).tar.gz
161 $(UNPACK)
162 $(MOVE)
164 .automake: automake .autoconf
165 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
166 touch $@
168 CLEAN_FILE += .automake
169 CLEAN_PKG += automake
170 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
172 # m4
174 m4-$(M4_VERSION).tar.gz:
175 $(call download_pkg,$(M4_URL),m4)
177 m4: m4-$(M4_VERSION).tar.gz
178 $(UNPACK)
179 $(APPLY) bison-macOS-c41f233c.patch
180 $(APPLY) bison-macOS-7df04f9.patch
181 $(MOVE)
183 .m4: m4
184 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
185 touch $@
187 CLEAN_FILE += .m4
188 CLEAN_PKG += m4
189 DISTCLEAN_PKG += m4-$(M4_VERSION).tar.gz
191 # pkg-config
193 pkg-config-$(PKGCFG_VERSION).tar.gz:
194 $(call download_pkg,$(PKGCFG_URL),pkgconfiglite)
196 pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
197 $(UNPACK)
198 mv pkg-config-lite-$(PKGCFG_VERSION) pkg-config-$(PKGCFG_VERSION)
199 $(MOVE)
201 .pkg-config: pkgconfig
202 (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
203 touch $@
205 CLEAN_FILE += .pkg-config
206 CLEAN_PKG += pkgconfig
207 DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
209 # gas-preprocessor
210 gas-preprocessor-$(GAS_VERSION).tar.gz:
211 $(call download_pkg,$(GAS_URL),gas-preprocessor)
213 gas: gas-preprocessor-$(GAS_VERSION).tar.gz
214 $(UNPACK)
215 $(MOVE)
217 .gas: gas
218 mkdir -p $(PREFIX)/bin
219 cp gas/gas-preprocessor.pl $(PREFIX)/bin/
220 touch $@
222 CLEAN_FILE += .gas
223 CLEAN_PKG += gas
224 DISTCLEAN_PKG += gas-preprocessor-$(GAS_VERSION).tar.gz
226 # Ragel State Machine Compiler
227 ragel-$(RAGEL_VERSION).tar.gz:
228 $(call download_pkg,$(RAGEL_URL),ragel)
230 ragel: ragel-$(RAGEL_VERSION).tar.gz
231 $(UNPACK)
232 $(APPLY) ragel-6.8-javacodegen.patch
233 $(MOVE)
236 .ragel: ragel
237 (cd ragel; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
238 touch $@
240 CLEAN_FILE += .ragel
241 CLEAN_PKG += ragel
242 DISTCLEAN_PKG += ragel-$(RAGEL_VERSION).tar.gz
244 # GNU sed
246 sed-$(SED_VERSION).tar.bz2:
247 $(call download_pkg,$(SED_URL),sed)
249 sed: sed-$(SED_VERSION).tar.bz2
250 $(UNPACK)
251 $(MOVE)
253 .sed: sed
254 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
255 touch $@
257 CLEAN_PKG += sed
258 DISTCLEAN_PKG += sed-$(SED_VERSION).tar.bz2
259 CLEAN_FILE += .sed
261 # Apache ANT
263 apache-ant-$(ANT_VERSION).tar.bz2:
264 $(call download_pkg,$(ANT_URL),ant)
266 ant: apache-ant-$(ANT_VERSION).tar.bz2
267 $(UNPACK)
268 $(MOVE)
270 .ant: ant
271 (mkdir -p $(PREFIX)/bin && cp $</bin/* $(PREFIX)/bin/)
272 (mkdir -p $(PREFIX)/lib && cp $</lib/* $(PREFIX)/lib/)
273 touch $@
275 CLEAN_PKG += ant
276 DISTCLEAN_PKG += apache-ant-$(ANT_VERSION).tar.bz2
277 CLEAN_FILE += .ant
280 # Protobuf Protoc
282 protobuf-$(PROTOBUF_VERSION).tar.gz:
283 $(call download_pkg,$(PROTOBUF_URL),protobuf)
285 protobuf: protobuf-$(PROTOBUF_VERSION).tar.gz
286 $(UNPACK)
287 $(MOVE)
289 .protoc: protobuf
290 (cd $< && ./configure --prefix="$(PREFIX)" --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
291 (find $(PREFIX) -name 'protobuf*.pc' -exec rm -f {} \;)
292 touch $@
294 CLEAN_PKG += protobuf
295 DISTCLEAN_PKG += protobuf-$(PROTOBUF_VERSION).tar.gz
296 CLEAN_FILE += .protoc
299 # GNU bison
302 bison-$(BISON_VERSION).tar.xz:
303 $(call download_pkg,$(BISON_URL),bison)
305 bison: bison-$(BISON_VERSION).tar.xz
306 $(UNPACK)
307 $(APPLY) bison-macOS-c41f233c.patch
308 $(APPLY) bison-macOS-7df04f9.patch
309 $(MOVE)
311 .bison: bison
312 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
313 touch $@
315 CLEAN_PKG += bison
316 DISTCLEAN_PKG += bison-$(BISON_VERSION).tar.xz
317 CLEAN_FILE += .bison
320 # GNU flex
323 flex-$(FLEX_VERSION).tar.gz:
324 $(call download_pkg,$(FLEX_URL),flex)
326 flex: flex-$(FLEX_VERSION).tar.gz
327 $(UNPACK)
328 $(MOVE)
330 .flex: flex
331 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
332 touch $@
334 CLEAN_PKG += flex
335 DISTCLEAN_PKG += flex-$(FLEX_VERSION).tar.gz
336 CLEAN_FILE += .flex
343 fetch-all: $(DISTCLEAN_PKG)
345 clean:
346 rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
348 distclean: clean
349 rm -fr $(DISTCLEAN_PKG)
351 .PHONY: all clean distclean
353 .DELETE_ON_ERROR: