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 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
$@
49 yasm-
$(YASM_VERSION
).
tar.gz
:
50 $(call download_pkg
,$(YASM_URL
),yasm
)
52 yasm
: yasm-
$(YASM_VERSION
).
tar.gz
57 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
62 DISTCLEAN_PKG
+= yasm-
$(YASM_VERSION
).
tar.gz
66 cmake-
$(CMAKE_VERSION
).
tar.gz
:
67 $(call download_pkg
,$(CMAKE_URL
),cmake
)
69 cmake
: cmake-
$(CMAKE_VERSION
).
tar.gz
74 (cd
$<; .
/configure
--prefix=$(PREFIX
) $(CMAKEFLAGS
) && $(MAKE
) && $(MAKE
) install)
79 DISTCLEAN_PKG
+= cmake-
$(CMAKE_VERSION
).
tar.gz
83 libtool-
$(LIBTOOL_VERSION
).
tar.gz
:
84 $(call download_pkg
,$(LIBTOOL_URL
),libtool
)
86 libtool
: libtool-
$(LIBTOOL_VERSION
).
tar.gz
88 $(APPLY
) libtool-2.4
.2-bitcode.patch
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
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
111 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
115 DISTCLEAN_PKG
+= tar-
$(TAR_VERSION
).
tar.bz2
120 xz-
$(XZ_VERSION
).
tar.bz2
:
121 $(call download_pkg
,$(XZ_URL
),xz
)
123 xz
: xz-
$(XZ_VERSION
).
tar.bz2
128 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install && rm $(PREFIX
)/lib
/pkgconfig
/liblzma.
pc)
132 DISTCLEAN_PKG
+= xz-
$(XZ_VERSION
).
tar.bz2
137 autoconf-
$(AUTOCONF_VERSION
).
tar.gz
:
138 $(call download_pkg
,$(AUTOCONF_URL
),autoconf
)
140 autoconf
: autoconf-
$(AUTOCONF_VERSION
).
tar.gz
144 .autoconf
: autoconf .pkg-config
145 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
148 CLEAN_FILE
+= .autoconf
149 CLEAN_PKG
+= autoconf
150 DISTCLEAN_PKG
+= autoconf-
$(AUTOCONF_VERSION
).
tar.gz
154 automake-
$(AUTOMAKE_VERSION
).
tar.gz
:
155 $(call download_pkg
,$(AUTOMAKE_URL
),automake
)
157 automake
: automake-
$(AUTOMAKE_VERSION
).
tar.gz
161 .automake
: automake .autoconf
162 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
165 CLEAN_FILE
+= .automake
166 CLEAN_PKG
+= automake
167 DISTCLEAN_PKG
+= automake-
$(AUTOMAKE_VERSION
).
tar.gz
171 m4-
$(M4_VERSION
).
tar.gz
:
172 $(call download_pkg
,$(M4_URL
),m4
)
174 m4
: m4-
$(M4_VERSION
).
tar.gz
179 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
184 DISTCLEAN_PKG
+= m4-
$(M4_VERSION
).
tar.gz
188 pkg-config-
$(PKGCFG_VERSION
).
tar.gz
:
189 $(call download_pkg
,$(PKGCFG_URL
),pkgconfiglite
)
191 pkgconfig
: pkg-config-
$(PKGCFG_VERSION
).
tar.gz
193 mv pkg-config-lite-
$(PKGCFG_VERSION
) pkg-config-
$(PKGCFG_VERSION
)
196 .pkg-config
: pkgconfig
197 (cd pkgconfig
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
200 CLEAN_FILE
+= .pkg-config
201 CLEAN_PKG
+= pkgconfig
202 DISTCLEAN_PKG
+= pkg-config-
$(PKGCFG_VERSION
).
tar.gz
205 gas-preprocessor-
$(GAS_VERSION
).
tar.gz
:
206 $(call download_pkg
,$(GAS_URL
),gas-preprocessor
)
208 gas
: gas-preprocessor-
$(GAS_VERSION
).
tar.gz
213 mkdir
-p
$(PREFIX
)/bin
214 cp gas
/gas-preprocessor.pl
$(PREFIX
)/bin
/
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
227 $(APPLY
) ragel-6.8
-javacodegen.patch
232 (cd ragel
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
237 DISTCLEAN_PKG
+= ragel-
$(RAGEL_VERSION
).
tar.gz
241 sed-
$(SED_VERSION
).
tar.bz2
:
242 $(call download_pkg
,$(SED_URL
),sed
)
244 sed
: sed-
$(SED_VERSION
).
tar.bz2
249 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
253 DISTCLEAN_PKG
+= sed-
$(SED_VERSION
).
tar.bz2
258 apache-ant-
$(ANT_VERSION
).
tar.bz2
:
259 $(call download_pkg
,$(ANT_URL
),ant
)
261 ant
: apache-ant-
$(ANT_VERSION
).
tar.bz2
266 (mkdir
-p
$(PREFIX
)/bin
&& cp
$</bin
/* $(PREFIX
)/bin
/)
267 (mkdir
-p
$(PREFIX
)/lib
&& cp
$</lib
/* $(PREFIX
)/lib
/)
271 DISTCLEAN_PKG
+= apache-ant-
$(ANT_VERSION
).
tar.bz2
277 protobuf-
$(PROTOBUF_VERSION
).
tar.gz
:
278 $(call download_pkg
,$(PROTOBUF_URL
),protobuf
)
280 protobuf
: protobuf-
$(PROTOBUF_VERSION
).
tar.gz
285 (cd
$< && .
/configure
--prefix="$(PREFIX)" --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
286 (find
$(PREFIX
) -name
'protobuf*.pc' -exec
rm -f
{} \
;)
289 CLEAN_PKG
+= protobuf
290 DISTCLEAN_PKG
+= protobuf-
$(PROTOBUF_VERSION
).
tar.gz
291 CLEAN_FILE
+= .protoc
298 rm -fr
$(CLEAN_FILE
) $(CLEAN_PKG
) build
/
301 rm -fr
$(DISTCLEAN_PKG
)
303 .PHONY
: all clean distclean