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)" > "$@.tmp" && touch
$@.tmp
&& mv
$@.tmp
$@
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" ) \
32 && grep
$(@
) SHA512SUMS| shasum
-a
512 -c
34 UNPACK
= $(RM
) -R
$@ \
35 $(foreach f
,$(filter %.
tar.gz
%.tgz
,$^
), && tar xvzf
$(f
)) \
36 $(foreach f
,$(filter %.
tar.bz2
,$^
), && tar xvjf
$(f
)) \
37 $(foreach f
,$(filter %.
tar.xz
,$^
), && tar xvJf
$(f
)) \
38 $(foreach f
,$(filter %.zip
,$^
), && unzip
$(f
))
40 UNPACK_DIR
= $(basename $(basename $(notdir $<)))
41 APPLY
= (cd
$(UNPACK_DIR
) && patch
-p1
) <
42 MOVE
= mv
$(UNPACK_DIR
) $@
&& touch
$@
50 yasm-
$(YASM_VERSION
).
tar.gz
:
51 $(call download_pkg
,$(YASM_URL
),yasm
)
53 yasm
: yasm-
$(YASM_VERSION
).
tar.gz
58 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
63 DISTCLEAN_PKG
+= yasm-
$(YASM_VERSION
).
tar.gz
67 cmake-
$(CMAKE_VERSION
).
tar.gz
:
68 $(call download_pkg
,$(CMAKE_URL
),cmake
)
70 cmake
: cmake-
$(CMAKE_VERSION
).
tar.gz
75 (cd
$<; .
/configure
--prefix=$(PREFIX
) $(CMAKEFLAGS
) && $(MAKE
) && $(MAKE
) install)
80 DISTCLEAN_PKG
+= cmake-
$(CMAKE_VERSION
).
tar.gz
84 libtool-
$(LIBTOOL_VERSION
).
tar.gz
:
85 $(call download_pkg
,$(LIBTOOL_URL
),libtool
)
87 libtool
: libtool-
$(LIBTOOL_VERSION
).
tar.gz
89 $(APPLY
) libtool-2.4
.2-bitcode.patch
90 $(APPLY
) libtool-2.4
.2-san.patch
93 .libtool
: libtool .automake
94 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
95 ln
-sf libtool
$(PREFIX
)/bin
/glibtool
96 ln
-sf libtoolize
$(PREFIX
)/bin
/glibtoolize
100 DISTCLEAN_PKG
+= libtool-
$(LIBTOOL_VERSION
).
tar.gz
101 CLEAN_FILE
+= .libtool
103 # GNU tar (with xz support)
105 tar-
$(TAR_VERSION
).
tar.bz2
:
106 $(call download_pkg
,$(TAR_URL
),tar)
108 tar: tar-
$(TAR_VERSION
).
tar.bz2
113 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
117 DISTCLEAN_PKG
+= tar-
$(TAR_VERSION
).
tar.bz2
122 xz-
$(XZ_VERSION
).
tar.bz2
:
123 $(call download_pkg
,$(XZ_URL
),xz
)
125 xz
: xz-
$(XZ_VERSION
).
tar.bz2
130 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install && rm $(PREFIX
)/lib
/pkgconfig
/liblzma.
pc)
134 DISTCLEAN_PKG
+= xz-
$(XZ_VERSION
).
tar.bz2
139 autoconf-
$(AUTOCONF_VERSION
).
tar.gz
:
140 $(call download_pkg
,$(AUTOCONF_URL
),autoconf
)
142 autoconf
: autoconf-
$(AUTOCONF_VERSION
).
tar.gz
146 .autoconf
: autoconf .pkg-config
147 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
150 CLEAN_FILE
+= .autoconf
151 CLEAN_PKG
+= autoconf
152 DISTCLEAN_PKG
+= autoconf-
$(AUTOCONF_VERSION
).
tar.gz
156 automake-
$(AUTOMAKE_VERSION
).
tar.gz
:
157 $(call download_pkg
,$(AUTOMAKE_URL
),automake
)
159 automake
: automake-
$(AUTOMAKE_VERSION
).
tar.gz
163 .automake
: automake .autoconf
164 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
167 CLEAN_FILE
+= .automake
168 CLEAN_PKG
+= automake
169 DISTCLEAN_PKG
+= automake-
$(AUTOMAKE_VERSION
).
tar.gz
173 m4-
$(M4_VERSION
).
tar.gz
:
174 $(call download_pkg
,$(M4_URL
),m4
)
176 m4
: m4-
$(M4_VERSION
).
tar.gz
181 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
186 DISTCLEAN_PKG
+= m4-
$(M4_VERSION
).
tar.gz
190 pkg-config-
$(PKGCFG_VERSION
).
tar.gz
:
191 $(call download_pkg
,$(PKGCFG_URL
),pkgconfiglite
)
193 pkgconfig
: pkg-config-
$(PKGCFG_VERSION
).
tar.gz
195 mv pkg-config-lite-
$(PKGCFG_VERSION
) pkg-config-
$(PKGCFG_VERSION
)
198 .pkg-config
: pkgconfig
199 (cd pkgconfig
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
202 CLEAN_FILE
+= .pkg-config
203 CLEAN_PKG
+= pkgconfig
204 DISTCLEAN_PKG
+= pkg-config-
$(PKGCFG_VERSION
).
tar.gz
207 gas-preprocessor-
$(GAS_VERSION
).
tar.gz
:
208 $(call download_pkg
,$(GAS_URL
),gas-preprocessor
)
210 gas
: gas-preprocessor-
$(GAS_VERSION
).
tar.gz
215 mkdir
-p
$(PREFIX
)/bin
216 cp gas
/gas-preprocessor.pl
$(PREFIX
)/bin
/
221 DISTCLEAN_PKG
+= gas-preprocessor-
$(GAS_VERSION
).
tar.gz
223 # Ragel State Machine Compiler
224 ragel-
$(RAGEL_VERSION
).
tar.gz
:
225 $(call download_pkg
,$(RAGEL_URL
),ragel
)
227 ragel
: ragel-
$(RAGEL_VERSION
).
tar.gz
229 $(APPLY
) ragel-6.8
-javacodegen.patch
234 (cd ragel
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
239 DISTCLEAN_PKG
+= ragel-
$(RAGEL_VERSION
).
tar.gz
243 sed-
$(SED_VERSION
).
tar.bz2
:
244 $(call download_pkg
,$(SED_URL
),sed
)
246 sed
: sed-
$(SED_VERSION
).
tar.bz2
251 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
255 DISTCLEAN_PKG
+= sed-
$(SED_VERSION
).
tar.bz2
260 apache-ant-
$(ANT_VERSION
).
tar.bz2
:
261 $(call download_pkg
,$(ANT_URL
),ant
)
263 ant
: apache-ant-
$(ANT_VERSION
).
tar.bz2
268 (mkdir
-p
$(PREFIX
)/bin
&& cp
$</bin
/* $(PREFIX
)/bin
/)
269 (mkdir
-p
$(PREFIX
)/lib
&& cp
$</lib
/* $(PREFIX
)/lib
/)
273 DISTCLEAN_PKG
+= apache-ant-
$(ANT_VERSION
).
tar.bz2
279 protobuf-
$(PROTOBUF_VERSION
).
tar.gz
:
280 $(call download_pkg
,$(PROTOBUF_URL
),protobuf
)
282 protobuf
: protobuf-
$(PROTOBUF_VERSION
).
tar.gz
287 (cd
$< && .
/configure
--prefix="$(PREFIX)" --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
288 (find
$(PREFIX
) -name
'protobuf*.pc' -exec
rm -f
{} \
;)
291 CLEAN_PKG
+= protobuf
292 DISTCLEAN_PKG
+= protobuf-
$(PROTOBUF_VERSION
).
tar.gz
293 CLEAN_FILE
+= .protoc
299 bison-
$(BISON_VERSION
).
tar.xz
:
300 $(call download_pkg
,$(BISON_URL
),bison
)
302 bison
: bison-
$(BISON_VERSION
).
tar.xz
304 $(APPLY
) bison-macOS-c41f233c.patch
305 $(APPLY
) bison-macOS-7df04f9.patch
309 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
313 DISTCLEAN_PKG
+= bison-
$(BISON_VERSION
).
tar.xz
321 fetch-all
: $(DISTCLEAN_PKG
)
324 rm -fr
$(CLEAN_FILE
) $(CLEAN_PKG
) build
/
327 rm -fr
$(DISTCLEAN_PKG
)
329 .PHONY
: all clean distclean