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
87 .libtool: libtool .automake
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 gas-preprocessor-$(GAS_VERSION).tar.gz:
202 $(call download,$(GAS_URL))
204 gas: gas-preprocessor-$(GAS_VERSION).tar.gz
209 mkdir -p $(PREFIX)/bin
210 cp gas/gas-preprocessor.pl $(PREFIX)/bin/
215 DISTCLEAN_PKG += yuvi-gas-preprocessor-$(GAS_VERSION).tar.gz
217 # Ragel State Machine Compiler
218 ragel-$(RAGEL_VERSION).tar.gz:
219 $(call download,$(RAGEL_URL))
221 ragel: ragel-$(RAGEL_VERSION).tar.gz
223 $(APPLY) ragel-6.8-javacodegen.patch
228 (cd ragel; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
233 DISTCLEAN_PKG += ragel-$(RAGEL_VERSION).tar.gz
237 sed-$(SED_VERSION).tar.bz2:
238 $(call download,$(SED_URL))
240 sed: sed-$(SED_VERSION).tar.bz2
245 (cd $<; ./configure --prefix=$(PREFIX) && $(MAKE) && $(MAKE) install)
249 DISTCLEAN_PKG += sed-$(SED_VERSION).tar.bz2
254 apache-ant-$(ANT_VERSION).tar.bz2:
255 $(call download,$(ANT_URL))
257 ant: apache-ant-$(ANT_VERSION).tar.bz2
262 (mkdir -p $(PREFIX)/bin && cp $</bin/* $(PREFIX)/bin/)
263 (mkdir -p $(PREFIX)/lib && cp $</lib/* $(PREFIX)/lib/)
267 DISTCLEAN_PKG += apache-ant-$(ANT_VERSION).tar.bz2
273 protobuf-$(PROTOBUF_VERSION).tar.bz2:
274 $(call download,$(PROTOBUF_URL))
276 protobuf: protobuf-$(PROTOBUF_VERSION).tar.bz2
281 (cd $< && ./configure --prefix="$(PREFIX)" --disable-shared --enable-static && $(MAKE) && $(MAKE) install)
282 (find $(PREFIX) -name 'protobuf*.pc' -exec rm -f {} \;)
285 CLEAN_PKG += protobuf
286 DISTCLEAN_PKG += protobuf-$(PROTOBUF_VERSION).tar.bz2
287 CLEAN_FILE += .protoc
294 rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
297 rm -fr $(DISTCLEAN_PKG)
299 .PHONY: all clean distclean