substext: pass margin and font to regions
[vlc.git] / extras / tools / tools.mak
blobc52e6ec8ebacf09dcb234c768f91cbf4d294bdec
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)" > "$@"
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" )
33 UNPACK = $(RM) -R $@ \
34 $(foreach f,$(filter %.tar.gz %.tgz,$^), && tar xvzf $(f)) \
35 $(foreach f,$(filter %.tar.bz2,$^), && tar xvjf $(f)) \
36 $(foreach f,$(filter %.tar.xz,$^), && tar xvJf $(f)) \
37 $(foreach f,$(filter %.zip,$^), && unzip $(f))
39 UNPACK_DIR = $(basename $(basename $(notdir $<)))
40 APPLY = (cd $(UNPACK_DIR) && patch -p1) <
41 MOVE = mv $(UNPACK_DIR) $@ && touch $@
44 # package rules
47 # yasm
49 yasm-$(YASM_VERSION).tar.gz:
50 $(call download_pkg,$(YASM_URL),yasm)
52 yasm: yasm-$(YASM_VERSION).tar.gz
53 $(UNPACK)
54 $(MOVE)
56 .yasm: yasm
57 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
58 touch $@
60 CLEAN_FILE += .yasm
61 CLEAN_PKG += yasm
62 DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
64 # cmake
66 cmake-$(CMAKE_VERSION).tar.gz:
67 $(call download_pkg,$(CMAKE_URL),cmake)
69 cmake: cmake-$(CMAKE_VERSION).tar.gz
70 $(UNPACK)
71 $(MOVE)
73 .cmake: cmake
74 (cd $<; ./configure --prefix=$(PREFIX) $(CMAKEFLAGS) && $(MAKE) && $(MAKE) install)
75 touch $@
77 CLEAN_FILE += .cmake
78 CLEAN_PKG += cmake
79 DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz
81 # libtool
83 libtool-$(LIBTOOL_VERSION).tar.gz:
84 $(call download_pkg,$(LIBTOOL_URL),libtool)
86 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
87 $(UNPACK)
88 $(APPLY) libtool-2.4.2-bitcode.patch
89 $(MOVE)
91 .libtool: libtool .automake
92 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
93 ln -sf libtool $(PREFIX)/bin/glibtool
94 ln -sf libtoolize $(PREFIX)/bin/glibtoolize
95 touch $@
97 CLEAN_PKG += libtool
98 DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
99 CLEAN_FILE += .libtool
101 # GNU tar (with xz support)
103 tar-$(TAR_VERSION).tar.bz2:
104 $(call download_pkg,$(TAR_URL),tar)
106 tar: tar-$(TAR_VERSION).tar.bz2
107 $(UNPACK)
108 $(MOVE)
110 .tar: tar
111 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
112 touch $@
114 CLEAN_PKG += tar
115 DISTCLEAN_PKG += tar-$(TAR_VERSION).tar.bz2
116 CLEAN_FILE += .tar
118 # xz
120 xz-$(XZ_VERSION).tar.bz2:
121 $(call download_pkg,$(XZ_URL),xz)
123 xz: xz-$(XZ_VERSION).tar.bz2
124 $(UNPACK)
125 $(MOVE)
127 .xz: xz
128 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install && rm $(PREFIX)/lib/pkgconfig/liblzma.pc)
129 touch $@
131 CLEAN_PKG += xz
132 DISTCLEAN_PKG += xz-$(XZ_VERSION).tar.bz2
133 CLEAN_FILE += .xz
135 # autoconf
137 autoconf-$(AUTOCONF_VERSION).tar.gz:
138 $(call download_pkg,$(AUTOCONF_URL),autoconf)
140 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
141 $(UNPACK)
142 $(MOVE)
144 .autoconf: autoconf .pkg-config
145 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
146 touch $@
148 CLEAN_FILE += .autoconf
149 CLEAN_PKG += autoconf
150 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
152 # automake
154 automake-$(AUTOMAKE_VERSION).tar.gz:
155 $(call download_pkg,$(AUTOMAKE_URL),automake)
157 automake: automake-$(AUTOMAKE_VERSION).tar.gz
158 $(UNPACK)
159 $(MOVE)
161 .automake: automake .autoconf
162 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
163 touch $@
165 CLEAN_FILE += .automake
166 CLEAN_PKG += automake
167 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
169 # m4
171 m4-$(M4_VERSION).tar.gz:
172 $(call download_pkg,$(M4_URL),m4)
174 m4: m4-$(M4_VERSION).tar.gz
175 $(UNPACK)
176 $(MOVE)
178 .m4: m4
179 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
180 touch $@
182 CLEAN_FILE += .m4
183 CLEAN_PKG += m4
184 DISTCLEAN_PKG += m4-$(M4_VERSION).tar.gz
186 # pkg-config
188 pkg-config-$(PKGCFG_VERSION).tar.gz:
189 $(call download_pkg,$(PKGCFG_URL),pkgconfiglite)
191 pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
192 $(UNPACK)
193 mv pkg-config-lite-$(PKGCFG_VERSION) pkg-config-$(PKGCFG_VERSION)
194 $(MOVE)
196 .pkg-config: pkgconfig
197 (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
198 touch $@
200 CLEAN_FILE += .pkg-config
201 CLEAN_PKG += pkgconfig
202 DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
204 # gas-preprocessor
205 gas-preprocessor-$(GAS_VERSION).tar.gz:
206 $(call download_pkg,$(GAS_URL),gas-preprocessor)
208 gas: gas-preprocessor-$(GAS_VERSION).tar.gz
209 $(UNPACK)
210 $(MOVE)
212 .gas: gas
213 mkdir -p $(PREFIX)/bin
214 cp gas/gas-preprocessor.pl $(PREFIX)/bin/
215 touch $@
217 CLEAN_FILE += .gas
218 CLEAN_PKG += gas
219 DISTCLEAN_PKG += yuvi-gas-preprocessor-$(GAS_VERSION).tar.gz
221 # Ragel State Machine Compiler
222 ragel-$(RAGEL_VERSION).tar.gz:
223 $(call download_pkg,$(RAGEL_URL),ragel)
225 ragel: ragel-$(RAGEL_VERSION).tar.gz
226 $(UNPACK)
227 $(APPLY) ragel-6.8-javacodegen.patch
228 $(MOVE)
231 .ragel: ragel
232 (cd ragel; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
233 touch $@
235 CLEAN_FILE += .ragel
236 CLEAN_PKG += ragel
237 DISTCLEAN_PKG += ragel-$(RAGEL_VERSION).tar.gz
239 # GNU sed
241 sed-$(SED_VERSION).tar.bz2:
242 $(call download_pkg,$(SED_URL),sed)
244 sed: sed-$(SED_VERSION).tar.bz2
245 $(UNPACK)
246 $(MOVE)
248 .sed: sed
249 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
250 touch $@
252 CLEAN_PKG += sed
253 DISTCLEAN_PKG += sed-$(SED_VERSION).tar.bz2
254 CLEAN_FILE += .sed
256 # Apache ANT
258 apache-ant-$(ANT_VERSION).tar.bz2:
259 $(call download_pkg,$(ANT_URL),ant)
261 ant: apache-ant-$(ANT_VERSION).tar.bz2
262 $(UNPACK)
263 $(MOVE)
265 .ant: ant
266 (mkdir -p $(PREFIX)/bin && cp $</bin/* $(PREFIX)/bin/)
267 (mkdir -p $(PREFIX)/lib && cp $</lib/* $(PREFIX)/lib/)
268 touch $@
270 CLEAN_PKG += ant
271 DISTCLEAN_PKG += apache-ant-$(ANT_VERSION).tar.bz2
272 CLEAN_FILE += .ant
275 # Protobuf Protoc
277 protobuf-$(PROTOBUF_VERSION).tar.gz:
278 $(call download_pkg,$(PROTOBUF_URL),protobuf)
280 protobuf: protobuf-$(PROTOBUF_VERSION).tar.gz
281 $(UNPACK)
282 $(MOVE)
284 .protoc: protobuf
285 (cd $< && ./configure --prefix="$(PREFIX)" --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
286 (find $(PREFIX) -name 'protobuf*.pc' -exec rm -f {} \;)
287 touch $@
289 CLEAN_PKG += protobuf
290 DISTCLEAN_PKG += protobuf-$(PROTOBUF_VERSION).tar.gz
291 CLEAN_FILE += .protoc
297 clean:
298 rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
300 distclean: clean
301 rm -fr $(DISTCLEAN_PKG)
303 .PHONY: all clean distclean
305 .DELETE_ON_ERROR: