1 # Copyright (C) 2003-2011 the VideoLAN team
3 # This file is under the same license as the vlc package.
11 AUTOCONF=$(PREFIX)/bin/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)" && \
21 else ifeq ($(which fetch >/dev/null 2>&1 || echo FAIL),)
22 download = rm -f $@.tmp && \
23 fetch -p -o $@.tmp "$(1)" && \
27 download = $(error Neither curl nor wget found!)
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))
36 UNPACK_DIR = $(basename $(basename $(notdir $<)))
37 APPLY = (cd $(UNPACK_DIR) && patch -p1) <
38 MOVE = mv $(UNPACK_DIR) $@ && touch $@
46 yasm-$(YASM_VERSION).tar.gz:
47 $(call download,$(YASM_URL))
49 yasm: yasm-$(YASM_VERSION).tar.gz
54 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
59 DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
63 cmake-$(CMAKE_VERSION).tar.gz:
64 $(call download,$(CMAKE_URL))
66 cmake: cmake-$(CMAKE_VERSION).tar.gz
71 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
76 DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz
80 libtool-$(LIBTOOL_VERSION).tar.gz:
81 $(call download,$(LIBTOOL_URL))
83 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
88 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
89 ln -sf libtool $(PREFIX)/bin/glibtool
90 ln -sf libtoolize $(PREFIX)/bin/glibtoolize
94 DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
95 CLEAN_FILE += .libtool
97 # GNU tar (with xz support)
99 tar-$(TAR_VERSION).tar.bz2:
100 $(call download,$(TAR_URL))
102 tar: tar-$(TAR_VERSION).tar.bz2
107 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
111 DISTCLEAN_PKG += tar-$(TAR_VERSION).tar.bz2
116 xz-$(XZ_VERSION).tar.bz2:
117 $(call download,$(XZ_URL))
119 xz: xz-$(XZ_VERSION).tar.bz2
124 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
128 DISTCLEAN_PKG += xz-$(XZ_VERSION).tar.bz2
133 autoconf-$(AUTOCONF_VERSION).tar.gz:
134 $(call download,$(AUTOCONF_URL))
136 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
140 .autoconf: autoconf .pkg-config
141 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
144 CLEAN_FILE += .autoconf
145 CLEAN_PKG += autoconf
146 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
150 automake-$(AUTOMAKE_VERSION).tar.gz:
151 $(call download,$(AUTOMAKE_URL))
153 automake: automake-$(AUTOMAKE_VERSION).tar.gz
157 .automake: automake .autoconf
158 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
161 CLEAN_FILE += .automake
162 CLEAN_PKG += automake
163 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
167 m4-$(M4_VERSION).tar.gz:
168 $(call download,$(M4_URL))
170 m4: m4-$(M4_VERSION).tar.gz
175 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
180 DISTCLEAN_PKG += m4-$(M4_VERSION).tar.gz
184 pkg-config-$(PKGCFG_VERSION).tar.gz:
185 $(call download,$(PKGCFG_URL))
187 pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
189 mv pkg-config-lite-$(PKGCFG_VERSION) pkg-config-$(PKGCFG_VERSION)
192 .pkg-config: pkgconfig
193 (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
196 CLEAN_FILE += .pkg-config
197 CLEAN_PKG += pkgconfig
198 DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
201 # we need to use -j1 here, since otherwise compilation fails (at least on Darwin)
203 openssl-$(OPENSSL_VERSION).tar.gz:
204 $(call download,$(OPENSSL_URL))
206 openssl: openssl-$(OPENSSL_VERSION).tar.gz
211 (cd openssl; ./config --prefix=$(PREFIX) no-shared no-zlib && make -j1 && make test && make install)
214 CLEAN_FILE += .openssl
216 DISTCLEAN_PKG += openssl-$(OPENSSL_VERSION).tar.gz
219 libav-gas-preprocessor-$(GAS_VERSION).tar.gz:
220 $(call download,$(GAS_URL))
222 gas: libav-gas-preprocessor-$(GAS_VERSION).tar.gz
227 cp gas/gas-preprocessor.pl build/bin/
232 DISTCLEAN_PKG += yuvi-gas-preprocessor-$(GAS_VERSION).tar.gz
234 # Ragel State Machine Compiler
235 ragel-$(RAGEL_VERSION).tar.gz:
236 $(call download,$(RAGEL_URL))
238 ragel: ragel-$(RAGEL_VERSION).tar.gz
243 (cd ragel; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
248 DISTCLEAN_PKG += ragel-$(RAGEL_VERSION).tar.gz
255 rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
258 rm -fr $(DISTCLEAN_PKG)
260 .PHONY: all clean distclean