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
65 nasm-
$(NASM_VERSION
).
tar.gz
:
66 $(call download_pkg
,$(NASM_URL
),nasm
)
68 nasm
: nasm-
$(NASM_VERSION
).
tar.gz
73 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
78 DISTCLEAN_PKG
+= nasm-
$(NASM_VERSION
).
tar.gz
82 cmake-
$(CMAKE_VERSION
).
tar.gz
:
83 $(call download_pkg
,$(CMAKE_URL
),cmake
)
85 cmake
: cmake-
$(CMAKE_VERSION
).
tar.gz
90 (cd
$<; .
/configure
--prefix=$(PREFIX
) $(CMAKEFLAGS
) && $(MAKE
) && $(MAKE
) install)
95 DISTCLEAN_PKG
+= cmake-
$(CMAKE_VERSION
).
tar.gz
99 libtool-
$(LIBTOOL_VERSION
).
tar.gz
:
100 $(call download_pkg
,$(LIBTOOL_URL
),libtool
)
102 libtool
: libtool-
$(LIBTOOL_VERSION
).
tar.gz
104 $(APPLY
) libtool-2.4
.2-bitcode.patch
105 $(APPLY
) libtool-2.4
.2-san.patch
106 $(APPLY
) libtool-2.4
.6-clang-libs.patch
109 .libtool
: libtool .automake
110 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
111 ln
-sf libtool
$(PREFIX
)/bin
/glibtool
112 ln
-sf libtoolize
$(PREFIX
)/bin
/glibtoolize
116 DISTCLEAN_PKG
+= libtool-
$(LIBTOOL_VERSION
).
tar.gz
117 CLEAN_FILE
+= .libtool
119 # GNU tar (with xz support)
121 tar-
$(TAR_VERSION
).
tar.bz2
:
122 $(call download_pkg
,$(TAR_URL
),tar)
124 tar: tar-
$(TAR_VERSION
).
tar.bz2
129 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
133 DISTCLEAN_PKG
+= tar-
$(TAR_VERSION
).
tar.bz2
138 xz-
$(XZ_VERSION
).
tar.bz2
:
139 $(call download_pkg
,$(XZ_URL
),xz
)
141 xz
: xz-
$(XZ_VERSION
).
tar.bz2
146 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install && rm $(PREFIX
)/lib
/pkgconfig
/liblzma.
pc)
150 DISTCLEAN_PKG
+= xz-
$(XZ_VERSION
).
tar.bz2
155 autoconf-
$(AUTOCONF_VERSION
).
tar.gz
:
156 $(call download_pkg
,$(AUTOCONF_URL
),autoconf
)
158 autoconf
: autoconf-
$(AUTOCONF_VERSION
).
tar.gz
162 .autoconf
: autoconf .pkg-config
163 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
166 CLEAN_FILE
+= .autoconf
167 CLEAN_PKG
+= autoconf
168 DISTCLEAN_PKG
+= autoconf-
$(AUTOCONF_VERSION
).
tar.gz
172 automake-
$(AUTOMAKE_VERSION
).
tar.gz
:
173 $(call download_pkg
,$(AUTOMAKE_URL
),automake
)
175 automake
: automake-
$(AUTOMAKE_VERSION
).
tar.gz
179 .automake
: automake .autoconf
180 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
183 CLEAN_FILE
+= .automake
184 CLEAN_PKG
+= automake
185 DISTCLEAN_PKG
+= automake-
$(AUTOMAKE_VERSION
).
tar.gz
189 m4-
$(M4_VERSION
).
tar.gz
:
190 $(call download_pkg
,$(M4_URL
),m4
)
192 m4
: m4-
$(M4_VERSION
).
tar.gz
194 $(APPLY
) bison-macOS-c41f233c.patch
195 $(APPLY
) bison-macOS-7df04f9.patch
199 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
204 DISTCLEAN_PKG
+= m4-
$(M4_VERSION
).
tar.gz
208 pkg-config-
$(PKGCFG_VERSION
).
tar.gz
:
209 $(call download_pkg
,$(PKGCFG_URL
),pkgconfiglite
)
211 pkgconfig
: pkg-config-
$(PKGCFG_VERSION
).
tar.gz
213 mv pkg-config-lite-
$(PKGCFG_VERSION
) pkg-config-
$(PKGCFG_VERSION
)
216 .pkg-config
: pkgconfig
217 (cd pkgconfig
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
220 CLEAN_FILE
+= .pkg-config
221 CLEAN_PKG
+= pkgconfig
222 DISTCLEAN_PKG
+= pkg-config-
$(PKGCFG_VERSION
).
tar.gz
225 gas-preprocessor-
$(GAS_VERSION
).
tar.gz
:
226 $(call download_pkg
,$(GAS_URL
),gas-preprocessor
)
228 gas
: gas-preprocessor-
$(GAS_VERSION
).
tar.gz
233 mkdir
-p
$(PREFIX
)/bin
234 cp gas
/gas-preprocessor.pl
$(PREFIX
)/bin
/
239 DISTCLEAN_PKG
+= gas-preprocessor-
$(GAS_VERSION
).
tar.gz
241 # Ragel State Machine Compiler
242 ragel-
$(RAGEL_VERSION
).
tar.gz
:
243 $(call download_pkg
,$(RAGEL_URL
),ragel
)
245 ragel
: ragel-
$(RAGEL_VERSION
).
tar.gz
247 $(APPLY
) ragel-6.8
-javacodegen.patch
252 (cd ragel
; .
/configure
--prefix=$(PREFIX
) --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
257 DISTCLEAN_PKG
+= ragel-
$(RAGEL_VERSION
).
tar.gz
261 sed-
$(SED_VERSION
).
tar.bz2
:
262 $(call download_pkg
,$(SED_URL
),sed
)
264 sed
: sed-
$(SED_VERSION
).
tar.bz2
269 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
273 DISTCLEAN_PKG
+= sed-
$(SED_VERSION
).
tar.bz2
278 apache-ant-
$(ANT_VERSION
).
tar.bz2
:
279 $(call download_pkg
,$(ANT_URL
),ant
)
281 ant
: apache-ant-
$(ANT_VERSION
).
tar.bz2
286 (mkdir
-p
$(PREFIX
)/bin
&& cp
$</bin
/* $(PREFIX
)/bin
/)
287 (mkdir
-p
$(PREFIX
)/lib
&& cp
$</lib
/* $(PREFIX
)/lib
/)
291 DISTCLEAN_PKG
+= apache-ant-
$(ANT_VERSION
).
tar.bz2
297 protobuf-
$(PROTOBUF_VERSION
).
tar.gz
:
298 $(call download_pkg
,$(PROTOBUF_URL
),protobuf
)
300 protobuf
: protobuf-
$(PROTOBUF_VERSION
).
tar.gz
305 (cd
$< && .
/configure
--prefix="$(PREFIX)" --disable-shared
--enable-static
&& $(MAKE
) && $(MAKE
) install)
306 (find
$(PREFIX
) -name
'protobuf*.pc' -exec
rm -f
{} \
;)
309 CLEAN_PKG
+= protobuf
310 DISTCLEAN_PKG
+= protobuf-
$(PROTOBUF_VERSION
).
tar.gz
311 CLEAN_FILE
+= .protoc
317 bison-
$(BISON_VERSION
).
tar.xz
:
318 $(call download_pkg
,$(BISON_URL
),bison
)
320 bison
: bison-
$(BISON_VERSION
).
tar.xz
322 $(APPLY
) bison-macOS-c41f233c.patch
323 $(APPLY
) bison-macOS-7df04f9.patch
327 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
331 DISTCLEAN_PKG
+= bison-
$(BISON_VERSION
).
tar.xz
338 flex-
$(FLEX_VERSION
).
tar.gz
:
339 $(call download_pkg
,$(FLEX_URL
),flex
)
341 flex
: flex-
$(FLEX_VERSION
).
tar.gz
346 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
350 DISTCLEAN_PKG
+= flex-
$(FLEX_VERSION
).
tar.gz
359 gettext-
$(GETTEXT_VERSION
).
tar.gz
:
360 $(call download_pkg
,$(GETTEXT_URL
),gettext
)
362 gettext
: gettext-
$(GETTEXT_VERSION
).
tar.gz
367 (cd
$<; .
/configure
--prefix=$(PREFIX
) && $(MAKE
) && $(MAKE
) install)
371 DISTCLEAN_PKG
+= gettext-
$(GETTEXT_VERSION
).
tar.gz
372 CLEAN_FILE
+= .gettext
379 fetch-all
: $(DISTCLEAN_PKG
)
382 rm -fr
$(CLEAN_FILE
) $(CLEAN_PKG
) build
/
385 rm -fr
$(DISTCLEAN_PKG
)
387 .PHONY
: all clean distclean