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
= $(patsubst %.
tar,%,$(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
91 $(APPLY
) libtool-2.4
.6-clang-libs.patch
94 .libtool
: libtool .automake
95 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
96 ln
-sf libtool
$(PREFIX
)/bin
/glibtool
97 ln
-sf libtoolize
$(PREFIX
)/bin
/glibtoolize
101 DISTCLEAN_PKG
+= libtool-
$(LIBTOOL_VERSION
).
tar.gz
102 CLEAN_FILE
+= .libtool
104 # GNU tar (with xz support)
106 tar-
$(TAR_VERSION
).
tar.bz2
:
107 $(call download_pkg
,$(TAR_URL
),tar)
109 tar: tar-
$(TAR_VERSION
).
tar.bz2
114 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
118 DISTCLEAN_PKG
+= tar-
$(TAR_VERSION
).
tar.bz2
123 xz-
$(XZ_VERSION
).
tar.bz2
:
124 $(call download_pkg
,$(XZ_URL
),xz
)
126 xz
: xz-
$(XZ_VERSION
).
tar.bz2
131 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install && rm $(PREFIX
)/lib
/pkgconfig
/liblzma.
pc)
135 DISTCLEAN_PKG
+= xz-
$(XZ_VERSION
).
tar.bz2
140 autoconf-
$(AUTOCONF_VERSION
).
tar.gz
:
141 $(call download_pkg
,$(AUTOCONF_URL
),autoconf
)
143 autoconf
: autoconf-
$(AUTOCONF_VERSION
).
tar.gz
147 .autoconf
: autoconf .pkg-config
148 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
151 CLEAN_FILE
+= .autoconf
152 CLEAN_PKG
+= autoconf
153 DISTCLEAN_PKG
+= autoconf-
$(AUTOCONF_VERSION
).
tar.gz
157 automake-
$(AUTOMAKE_VERSION
).
tar.gz
:
158 $(call download_pkg
,$(AUTOMAKE_URL
),automake
)
160 automake
: automake-
$(AUTOMAKE_VERSION
).
tar.gz
164 .automake
: automake .autoconf
165 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
168 CLEAN_FILE
+= .automake
169 CLEAN_PKG
+= automake
170 DISTCLEAN_PKG
+= automake-
$(AUTOMAKE_VERSION
).
tar.gz
174 m4-
$(M4_VERSION
).
tar.gz
:
175 $(call download_pkg
,$(M4_URL
),m4
)
177 m4
: m4-
$(M4_VERSION
).
tar.gz
179 $(APPLY
) bison-macOS-c41f233c.patch
180 $(APPLY
) bison-macOS-7df04f9.patch
184 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
189 DISTCLEAN_PKG
+= m4-
$(M4_VERSION
).
tar.gz
193 pkg-config-
$(PKGCFG_VERSION
).
tar.gz
:
194 $(call download_pkg
,$(PKGCFG_URL
),pkgconfiglite
)
196 pkgconfig
: pkg-config-
$(PKGCFG_VERSION
).
tar.gz
198 mv pkg-config-lite-
$(PKGCFG_VERSION
) pkg-config-
$(PKGCFG_VERSION
)
201 .pkg-config
: pkgconfig
202 (cd pkgconfig
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
205 CLEAN_FILE
+= .pkg-config
206 CLEAN_PKG
+= pkgconfig
207 DISTCLEAN_PKG
+= pkg-config-
$(PKGCFG_VERSION
).
tar.gz
210 gas-preprocessor-
$(GAS_VERSION
).
tar.gz
:
211 $(call download_pkg
,$(GAS_URL
),gas-preprocessor
)
213 gas
: gas-preprocessor-
$(GAS_VERSION
).
tar.gz
218 mkdir
-p
$(PREFIX
)/bin
219 cp gas
/gas-preprocessor.pl
$(PREFIX
)/bin
/
224 DISTCLEAN_PKG
+= gas-preprocessor-
$(GAS_VERSION
).
tar.gz
226 # Ragel State Machine Compiler
227 ragel-
$(RAGEL_VERSION
).
tar.gz
:
228 $(call download_pkg
,$(RAGEL_URL
),ragel
)
230 ragel
: ragel-
$(RAGEL_VERSION
).
tar.gz
232 $(APPLY
) ragel-6.8
-javacodegen.patch
237 (cd ragel
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
242 DISTCLEAN_PKG
+= ragel-
$(RAGEL_VERSION
).
tar.gz
246 sed-
$(SED_VERSION
).
tar.bz2
:
247 $(call download_pkg
,$(SED_URL
),sed
)
249 sed
: sed-
$(SED_VERSION
).
tar.bz2
254 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
258 DISTCLEAN_PKG
+= sed-
$(SED_VERSION
).
tar.bz2
263 apache-ant-
$(ANT_VERSION
).
tar.bz2
:
264 $(call download_pkg
,$(ANT_URL
),ant
)
266 ant
: apache-ant-
$(ANT_VERSION
).
tar.bz2
271 (mkdir
-p
$(PREFIX
)/bin
&& cp
$</bin
/* $(PREFIX
)/bin
/)
272 (mkdir
-p
$(PREFIX
)/lib
&& cp
$</lib
/* $(PREFIX
)/lib
/)
276 DISTCLEAN_PKG
+= apache-ant-
$(ANT_VERSION
).
tar.bz2
282 protobuf-
$(PROTOBUF_VERSION
).
tar.gz
:
283 $(call download_pkg
,$(PROTOBUF_URL
),protobuf
)
285 protobuf
: protobuf-
$(PROTOBUF_VERSION
).
tar.gz
290 (cd
$< && .
/configure
--prefix="$(PREFIX)" --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
291 (find
$(PREFIX
) -name
'protobuf*.pc' -exec
rm -f
{} \
;)
294 CLEAN_PKG
+= protobuf
295 DISTCLEAN_PKG
+= protobuf-
$(PROTOBUF_VERSION
).
tar.gz
296 CLEAN_FILE
+= .protoc
302 bison-
$(BISON_VERSION
).
tar.xz
:
303 $(call download_pkg
,$(BISON_URL
),bison
)
305 bison
: bison-
$(BISON_VERSION
).
tar.xz
307 $(APPLY
) bison-macOS-c41f233c.patch
308 $(APPLY
) bison-macOS-7df04f9.patch
312 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
316 DISTCLEAN_PKG
+= bison-
$(BISON_VERSION
).
tar.xz
323 flex-
$(FLEX_VERSION
).
tar.gz
:
324 $(call download_pkg
,$(FLEX_URL
),flex
)
326 flex
: flex-
$(FLEX_VERSION
).
tar.gz
331 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
335 DISTCLEAN_PKG
+= flex-
$(FLEX_VERSION
).
tar.gz
343 fetch-all
: $(DISTCLEAN_PKG
)
346 rm -fr
$(CLEAN_FILE
) $(CLEAN_PKG
) build
/
349 rm -fr
$(DISTCLEAN_PKG
)
351 .PHONY
: all clean distclean