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.bz2:
134 $(call download,$(AUTOCONF_URL))
136 autoconf: autoconf-$(AUTOCONF_VERSION).tar.bz2
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.bz2
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 pkg-config-$(PKGCFG_VERSION).tar.gz:
168 $(call download,$(PKGCFG_URL))
170 pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
174 .pkg-config: pkgconfig
175 (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
178 CLEAN_FILE += .pkg-config
179 CLEAN_PKG += pkgconfig
180 DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
183 # we need to use -j1 here, since otherwise compilation fails (at least on Darwin)
185 openssl-$(OPENSSL_VERSION).tar.gz:
186 $(call download,$(OPENSSL_URL))
188 openssl: openssl-$(OPENSSL_VERSION).tar.gz
193 (cd openssl; ./config --prefix=$(PREFIX) no-shared no-zlib && make -j1 && make test && make install)
196 CLEAN_FILE += .openssl
198 DISTCLEAN_PKG += openssl-$(OPENSSL_VERSION).tar.gz
201 yuvi-gas-preprocessor-$(GAS_VERSION).tar.gz:
202 $(call download,$(GAS_URL))
204 gas: yuvi-gas-preprocessor-$(GAS_VERSION).tar.gz
209 cp gas/gas-preprocessor.pl build/bin/
214 DISTCLEAN_PKG += yuvi-gas-preprocessor-$(GAS_VERSION).tar.gz
221 rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
224 rm -fr $(DISTCLEAN_PKG)
226 .PHONY: all clean distclean