]> git.sesse.net Git - vlc/blob - extras/tools/tools.mak
68267cb62f4becd7fd25d2ebec102c41154c45b3
[vlc] / extras / tools / tools.mak
1 # Copyright (C) 2003-2011 the VideoLAN team
2 #
3 # This file is under the same license as the vlc package.
4
5 include packages.mak
6
7 #
8 # common rules
9 #
10
11 ifeq ($(shell curl --version >/dev/null 2>&1 || echo FAIL),)
12 download = curl -f -L -- "$(1)" > "$@"
13 else ifeq ($(shell wget --version >/dev/null 2>&1 || echo FAIL),)
14 download = rm -f $@.tmp && \
15         wget --passive -c -p -O $@.tmp "$(1)" && \
16         touch $@.tmp && \
17         mv $@.tmp $@
18 else
19 download = $(error Neither curl nor wget found!)
20 endif
21
22 UNPACK = $(RM) -R $@ \
23     $(foreach f,$(filter %.tar.gz %.tgz,$^), && tar xvzf $(f)) \
24     $(foreach f,$(filter %.tar.bz2,$^), && tar xvjf $(f)) \
25     $(foreach f,$(filter %.tar.xz,$^), && tar xvJf $(f)) \
26     $(foreach f,$(filter %.zip,$^), && unzip $(f))
27
28 UNPACK_DIR = $(basename $(basename $(notdir $<)))
29 APPLY = (cd $(UNPACK_DIR) && patch -p1) <
30 MOVE = mv $(UNPACK_DIR) $@ && touch $@
31
32 #
33 # package rules
34 #
35
36 # yasm
37
38 yasm-$(YASM_VERSION).tar.gz:
39         $(download) $(YASM_URL)
40
41 yasm: yasm-$(YASM_VERSION).tar.gz
42         $(UNPACK)
43         $(MOVE)
44
45 .yasm: yasm
46         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
47         touch $@
48
49 CLEAN_FILE += .yasm
50 CLEAN_PKG += yasm
51 DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
52
53 # cmake
54
55 cmake-$(CMAKE_VERSION).tar.gz:
56         $(download) $(CMAKE_URL)
57
58 cmake: cmake-$(CMAKE_VERSION).tar.gz
59         $(UNPACK)
60         $(MOVE)
61
62 .cmake: cmake
63         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
64         touch $@
65
66 CLEAN_FILE += .cmake
67 CLEAN_PKG += cmake
68 DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz
69
70 # libtool
71
72 libtool-$(LIBTOOL_VERSION).tar.gz:
73         $(download) $(LIBTOOL_URL)
74
75 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
76         $(UNPACK)
77         $(MOVE)
78
79 .libtool: libtool
80         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
81         ln -sf libtool $(PREFIX)/bin/glibtool
82         ln -sf libtoolize $(PREFIX)/bin/glibtoolize
83         touch $@
84
85 CLEAN_PKG += libtool
86 DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
87 CLEAN_FILE += .libtool
88
89 # GNU tar (with xz support)
90
91 tar-$(TAR_VERSION).tar.bz2:
92         $(download) $(TAR_URL)
93
94 tar: tar-$(TAR_VERSION).tar.bz2
95         $(UNPACK)
96         $(MOVE)
97
98 .tar: tar
99         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
100         touch $@
101
102 CLEAN_PKG += tar
103 DISTCLEAN_PKG += tar-$(TAR_VERSION).tar.bz2
104 CLEAN_FILE += .tar
105
106 # xz
107
108 xz-$(XZ_VERSION).tar.bz2:
109         $(download) $(XZ_URL)
110
111 xz: xz-$(XZ_VERSION).tar.bz2
112         $(UNPACK)
113         $(MOVE)
114
115 .xz: xz
116         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
117         touch $@
118
119 CLEAN_PKG += xz
120 DISTCLEAN_PKG += xz-$(XZ_VERSION).tar.bz2
121 CLEAN_FILE += .xz
122
123 # autoconf
124
125 autoconf-$(AUTOCONF_VERSION).tar.bz2:
126         $(download) $(AUTOCONF_URL)
127
128 autoconf: autoconf-$(AUTOCONF_VERSION).tar.bz2
129         $(UNPACK)
130         $(MOVE)
131
132 .autoconf: autoconf
133         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
134         touch $@
135
136 CLEAN_FILE += .autoconf
137 CLEAN_PKG += autoconf
138 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.bz2
139
140 # automake
141
142 automake-$(AUTOMAKE_VERSION).tar.gz:
143         $(download) $(AUTOMAKE_URL)
144
145 automake: automake-$(AUTOMAKE_VERSION).tar.gz
146         $(UNPACK)
147         $(MOVE)
148
149 .automake: automake .autoconf
150         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
151         touch $@
152
153 CLEAN_FILE += .automake
154 CLEAN_PKG += automake
155 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
156
157 # pkg-config
158
159 pkg-config-$(PKGCFG_VERSION).tar.gz:
160         $(download) $(PKGCFG_URL)
161
162 pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
163         $(UNPACK)
164         $(MOVE)
165         (cd $@; autoconf)
166
167 .pkg-config: pkgconfig
168         (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
169         touch $@
170
171 CLEAN_FILE += .pkg-config
172 CLEAN_PKG += pkgconfig
173 DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
174
175 #
176 #
177 #
178
179 clean:
180         rm -fr $(CLEAN_FILE) $(CLEAN_PKG) build/
181
182 distclean: clean
183         rm -fr $(DISTCLEAN_PKG)
184
185 .PHONY: all clean distclean