OSDN Git Service

59cc1747b053db1372082015b74879c9829f86d4
[handbrake-jp/handbrake-jp-git.git] / contrib / Jamfile
1 SubDir TOP contrib ;
2
3 # Use curl on Mac OS X since it's always installed, and assume wget
4 # is installed for all other systems
5 if $(OS) = MACOSX
6 {
7     WGET = curl -L -o ;
8 }
9 else
10 {
11     WGET = wget -O ;
12 }
13
14 if $(OS) = UNKNOWN
15 {
16     OS = CYGWIN ;
17 }
18
19 # Wget rule: downloads $(<) from the link in $(>)
20 rule Wget
21 {
22     Depends $(<) : $(>) ;
23 }
24 actions Wget
25 {
26     $(RM) $(<) &&
27     $(WGET) $(<) `cat $(>)` &&
28     ( touch $(<) || true )
29 }
30
31 # liba52
32 rule LibA52
33 {
34     Depends $(<) : $(>) ;
35     Depends lib  : $(<) ;
36 }
37 actions LibA52
38 {
39
40     cd `dirname $(>)` && CONTRIB=`pwd` &&
41     rm -rf a52dec && tar xzf a52dec.tar.gz && cd a52dec && patch -p1 < ../patch-a52dec.patch
42     ./configure --prefix=$CONTRIB && make && make install &&
43     strip -S $CONTRIB/lib/liba52.a
44 }
45 Wget   $(SUBDIR)/a52dec.tar.gz : $(SUBDIR)/version_a52dec.txt ;
46 LibA52 $(SUBDIR)/lib/liba52.a  : $(SUBDIR)/a52dec.tar.gz ;
47
48 # libavcodec
49 rule LibAvCodec
50 {
51     FFMPEG_PATCH = "patch -p0 < ../patch-ffmpeg.patch" ;
52     if $(OS) = CYGWIN
53     {
54         FFMPEG_PATCH += " && patch -p1 < ../patch-ffmpeg-cygwin.patch " ;
55     }
56     Depends $(<) : $(>) ;
57     Depends lib  : $(<) ;
58 }
59 actions LibAvCodec
60 {
61     cd `dirname $(>)` && CONTRIB=`pwd` &&
62     rm -rf ffmpeg && tar xzf ffmpeg.tar.gz &&
63     cd ffmpeg && $(FFMPEG_PATCH) &&
64     ./configure --prefix=$CONTRIB $(FFMPEG_OPTIONS) --enable-gpl --enable-swscaler --disable-decoders --enable-decoder=mp2 --disable-encoders --enable-encoder=mpeg4 --enable-encoder=mp2 --enable-encoder=ac3 --enable-encoder=snow --disable-audio-beos --enable-shared --enable-static &&
65     make && make install &&
66     strip -S $CONTRIB/lib/libavcodec.a
67 }
68 Wget       $(SUBDIR)/ffmpeg.tar.gz    : $(SUBDIR)/version_ffmpeg.txt ;
69 LibAvCodec $(SUBDIR)/lib/libavcodec.a : $(SUBDIR)/ffmpeg.tar.gz ;
70
71 rule LibAvUtil
72 {
73     Depends $(<) : $(>) ;
74     Depends lib  : $(<) ;
75 }
76 actions LibAvUtil
77 {
78     strip -S $(<)
79 }
80 LibAvUtil $(SUBDIR)/lib/libavutil.a : $(SUBDIR)/lib/libavcodec.a ;
81 LibAvUtil $(SUBDIR)/lib/libavformat.a : $(SUBDIR)/lib/libavcodec.a ;
82 LibAvUtil $(SUBDIR)/lib/libswscale.a : $(SUBDIR)/lib/libavcodec.a ;
83
84 # CSS doesn't work on Cygwin/Windows as of now, so don't use it.
85 if $(OS) != CYGWIN
86 {
87     # libdvdcss
88     # We need libdvdcss.so for libdvdread's configure to work...
89     rule LibDvdCss
90     {
91         Depends $(<) : $(>) ;
92         Depends lib  : $(<) ;
93     }
94     actions LibDvdCss
95     {
96         cd `dirname $(>)` && CONTRIB=`pwd` &&
97             rm -rf libdvdcss && tar xzf libdvdcss.tar.gz && cd libdvdcss &&
98             ./configure --prefix=$CONTRIB && make && make install &&
99             strip -S $CONTRIB/lib/libdvdcss.a
100     }
101     Wget      $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
102     LibDvdCss $(SUBDIR)/lib/libdvdcss.a  : $(SUBDIR)/libdvdcss.tar.gz ;
103 }
104
105 # libdca
106 rule LibDCA
107 {
108     Depends $(<) : $(>) ;
109     Depends lib  : $(<) ;
110 }
111 actions LibDCA
112 {
113     cd `dirname $(>)` && CONTRIB=`pwd` &&
114     rm -rf libdca && tar xzf libdca.tar.gz && cd libdca && patch -p1 < ../patch-libdca.patch
115         ./configure && make &&
116         cp libdca/.libs/libdca.a $CONTRIB/lib &&
117         cp include/dca.h $CONTRIB/include &&
118         strip -S $CONTRIB/lib/libdca.a
119 }
120 Wget   $(SUBDIR)/libdca.tar.gz : $(SUBDIR)/version_libdca.txt ;
121 LibDCA $(SUBDIR)/lib/libdca.a  : $(SUBDIR)/libdca.tar.gz ;
122
123 # libdvdread
124 rule LibDvdRead
125 {
126     # Not needed anymore since Clee fixed the problem in dvd.c
127     # LIBDVDREAD_PATCH = "patch -p1 < ../patch-libdvdread.patch" ;
128     Depends $(<) : $(>) ;
129     Depends lib  : $(<) ;
130 }
131 if $(OS) != CYGWIN
132 {
133     actions LibDvdRead
134     {
135         cd `dirname $(>)` && CONTRIB=`pwd` &&
136             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
137             # $(LIBDVDREAD_PATCH) &&
138             ./configure --prefix=$CONTRIB --disable-shared --with-libdvdcss=$CONTRIB &&
139             make && make install &&
140             strip -S $CONTRIB/lib/libdvdread.a
141     }
142 }
143 else {
144     # Cygwin/Windows doesn't use CSS as of now, so don't include it on the
145     # configure line.
146     actions LibDvdRead
147     {
148         cd `dirname $(>)` && CONTRIB=`pwd` &&
149             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
150             # $(LIBDVDREAD_PATCH) &&
151             ./configure --prefix=$CONTRIB --disable-shared &&
152             make && make install &&
153             strip -S $CONTRIB/lib/libdvdread.a
154     }
155 }
156 Wget       $(SUBDIR)/libdvdread.tar.gz : $(SUBDIR)/version_libdvdread.txt ;
157 LibDvdRead $(SUBDIR)/lib/libdvdread.a  : $(SUBDIR)/libdvdread.tar.gz ;
158
159 # libfaac
160 rule LibFaac
161 {
162     Depends $(<) : $(>) ;
163     Depends lib  : $(<) ;
164 }
165 actions LibFaac
166 {
167     cd `dirname $(>)` && CONTRIB=`pwd` &&
168     rm -rf faac && tar xzf faac.tar.gz && cd faac &&
169     ./configure --prefix=$CONTRIB --enable-shared --enable-static &&
170     make && make install &&
171     strip -S $CONTRIB/lib/libfaac.a
172 }
173 Wget    $(SUBDIR)/faac.tar.gz   : $(SUBDIR)/version_faac.txt ;
174 LibFaac $(SUBDIR)/lib/libfaac.a : $(SUBDIR)/faac.tar.gz ;
175
176 # libmp3lame
177 rule LibMp3Lame
178 {
179     Depends $(<) : $(>) ;
180     Depends lib  : $(<) ;
181 }
182 actions LibMp3Lame
183 {
184     cd `dirname $(>)` && CONTRIB=`pwd` &&
185     rm -rf lame && tar xzf lame.tar.gz && cd lame &&
186     ./configure --prefix=$CONTRIB --disable-shared &&
187     make && make install &&
188     strip -S $CONTRIB/lib/libmp3lame.a
189 }
190 Wget       $(SUBDIR)/lame.tar.gz      : $(SUBDIR)/version_lame.txt ;
191 LibMp3Lame $(SUBDIR)/lib/libmp3lame.a : $(SUBDIR)/lame.tar.gz ;
192
193 # libmp4v2
194 rule LibMp4v2
195 {
196     Depends $(<) : $(>) ;
197     Depends lib  : $(<) ;
198 }
199 if $(OS) != CYGWIN
200 {
201         actions LibMp4v2
202         {
203         cd `dirname $(>)` && CONTRIB=`pwd` &&
204         rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
205         patch -p1 < ../patch-mpeg4ip.patch && patch -p0 < ../patch-mpeg4ip-pascal-str.patch &&
206         ./bootstrap  --disable-mp3lame --disable-faac --disable-x264 --disable-server --disable-player && make -C lib/mp4v2 libmp4v2.la &&
207         cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
208         cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
209         include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
210         strip -S $CONTRIB/lib/libmp4v2.a
211         }
212 }
213 else
214 {
215         actions LibMp4v2
216         {
217         cd `dirname $(>)` && CONTRIB=`pwd` &&
218         rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
219         patch -p1 < ../patch-mpeg4ip.patch &&
220         patch -p1 < ../patch_mpeg4ip_cygwin.patch && patch -p0 < ../patch-mpeg4ip-pascal-str.patch && ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
221         cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
222         cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
223         include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
224         strip -S $CONTRIB/lib/libmp4v2.a
225         }
226 }
227
228 Wget     $(SUBDIR)/mpeg4ip.tar.gz : $(SUBDIR)/version_mpeg4ip.txt ;
229 LibMp4v2 $(SUBDIR)/lib/libmp4v2.a : $(SUBDIR)/mpeg4ip.tar.gz ;
230
231 # libmpeg2
232 rule LibMpeg2
233 {
234     Depends $(<) : $(>) ;
235     Depends lib  : $(<) ;
236 }
237 actions LibMpeg2
238 {
239     cd `dirname $(>)` && CONTRIB=`pwd` &&
240     rm -rf mpeg2dec && tar xzf mpeg2dec.tar.gz && cd mpeg2dec && patch -p1 < ../patch-libmpeg2.patch &&
241     ./configure --prefix=$CONTRIB --disable-shared --disable-sdl &&
242     make && make install &&
243     strip -S $CONTRIB/lib/libmpeg2.a
244 }
245 Wget     $(SUBDIR)/mpeg2dec.tar.gz : $(SUBDIR)/version_mpeg2dec.txt ;
246 LibMpeg2 $(SUBDIR)/lib/libmpeg2.a  : $(SUBDIR)/mpeg2dec.tar.gz ;
247
248 # libogg
249 rule LibOgg
250 {
251     Depends $(<) : $(>) ;
252     Depends lib  : $(<) ;
253 }
254 actions LibOgg
255 {
256     cd `dirname $(>)` && CONTRIB=`pwd` &&
257     rm -rf libogg && tar xzf libogg.tar.gz && cd libogg &&
258     ./configure --prefix=$CONTRIB --disable-shared &&
259     make && make install &&
260     strip -S $CONTRIB/lib/libogg.a
261 }
262 Wget   $(SUBDIR)/libogg.tar.gz : $(SUBDIR)/version_libogg.txt ;
263 LibOgg $(SUBDIR)/lib/libogg.a  : $(SUBDIR)/libogg.tar.gz ;
264
265 # libsamplerate
266 rule LibSampleRate
267 {
268     Depends $(<) : $(>) ;
269     Depends lib  : $(<) ;
270 }
271 actions LibSampleRate
272 {
273     cd `dirname $(>)` && CONTRIB=`pwd` &&
274     rm -rf libsamplerate && tar xzf libsamplerate.tar.gz && cd libsamplerate &&
275     ./configure --prefix=$CONTRIB --disable-shared &&
276     make && make install &&
277     strip -S $CONTRIB/lib/libsamplerate.a
278 }
279 Wget          $(SUBDIR)/libsamplerate.tar.gz : $(SUBDIR)/version_libsamplerate.txt ;
280 LibSampleRate $(SUBDIR)/lib/libsamplerate.a  : $(SUBDIR)/libsamplerate.tar.gz ;
281
282 # libvorbis
283 rule LibVorbis
284 {
285     Depends $(<) : $(>) ;
286     Depends lib  : $(<) ;
287 }
288 actions LibVorbis
289 {
290     cd `dirname $(>)` && CONTRIB=`pwd` &&
291     rm -rf libvorbis && tar xzf libvorbis.tar.gz && cd libvorbis &&
292     ./configure --prefix=$CONTRIB --with-ogg=$CONTRIB --disable-shared &&
293     make && make install &&
294     strip -S $CONTRIB/lib/libvorbis.a
295 }
296 Wget      $(SUBDIR)/libvorbis.tar.gz : $(SUBDIR)/version_libvorbis.txt ;
297 LibVorbis $(SUBDIR)/lib/libvorbis.a  : $(SUBDIR)/libvorbis.tar.gz ;
298
299 rule LibVorbisEnc
300 {
301     Depends $(<) : $(>) ;
302     Depends lib  : $(<) ;
303 }
304 actions LibVorbisEnc
305 {
306     strip -S $(<)
307 }
308 LibVorbisEnc $(SUBDIR)/lib/libvorbisenc.a : $(SUBDIR)/lib/libvorbis.a ;
309
310 # libx264
311 rule LibX264
312 {
313     LIBX264_PATCH = "" ;
314     if $(OS) = MACOSX && $(OSPLAT) = X86
315     {
316         LIBX264_PATCH = " patch -p1 < ../patch-x264-macintel.patch && " ;
317     }
318     else if $(OS) = CYGWIN
319     {
320         LIBX264_PATCH = " patch -p1 < ../patch-x264-cygwin.patch && " ;
321     }
322 #    else if $(OS) = LINUX
323 #    {
324 #        LIBX264_PATCH = " patch -p1 < ../patch-x264-linux.patch && " ;
325 #    }
326     LIBX264_AQ_PATCH = " patch -p0 < ../patch-x264-aq.patch && " ;
327     Depends $(<) : $(>) ;
328     Depends lib  : $(<) ;
329 }
330 actions LibX264
331 {
332     cd `dirname $(>)` && CONTRIB=`pwd` &&
333     rm -rf x264 && tar xzf x264.tar.gz && cd x264 && $(LIBX264_PATCH) $(LIBX264_AQ_PATCH)
334     ./configure --prefix=$CONTRIB --enable-pthread && make &&
335     make install &&
336     strip -S $CONTRIB/lib/libx264.a
337 }
338 Wget    $(SUBDIR)/x264.tar.gz   : $(SUBDIR)/version_x264.txt ;
339 LibX264 $(SUBDIR)/lib/libx264.a : $(SUBDIR)/x264.tar.gz ;
340
341 # libxvidcore
342 rule LibXvidCore
343 {
344     LIBXVIDCORE_PATCH = "" ;
345     if $(OS) = MACOSX
346     {
347         LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-macosx.patch && " ;
348     }
349     else if $(OS) = CYGWIN
350     {
351         LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-cygwin.patch && " ;
352     }
353     Depends $(<) : $(>) ;
354     Depends lib  : $(<) ;
355 }
356 actions LibXvidCore
357 {
358     cd `dirname $(>)` && CONTRIB=`pwd` &&
359     rm -rf xvidcore && tar xzf xvidcore.tar.gz &&
360     cd xvidcore && $(LIBXVIDCORE_PATCH)
361     cd build/generic/ && ./configure && make libxvidcore.a &&
362     cp ./=build/libxvidcore.a $CONTRIB/lib/ &&
363     cp ../../src/xvid.h $CONTRIB/include/ &&
364     strip -S $CONTRIB/lib/libxvidcore.a
365 }
366 Wget        $(SUBDIR)/xvidcore.tar.gz   : $(SUBDIR)/version_xvidcore.txt ;
367 LibXvidCore $(SUBDIR)/lib/libxvidcore.a : $(SUBDIR)/xvidcore.tar.gz ;
368
369 # zlib
370 if $(OS) = CYGWIN
371 {
372 rule Zlib
373 {
374     Depends $(<) : $(>) ;
375     Depends lib  : $(<) ;
376 }
377 actions Zlib
378 {
379     cd `dirname $(>)` && CONTRIB=`pwd` &&
380     rm -rf zlib && tar xzf zlib.tar.gz &&
381     cd zlib && 
382     ./configure --prefix=$CONTRIB && make && make install && touch $CONTRIB/.contrib
383     strip -S $CONTRIB/lib/libz.a
384 }
385 Wget        $(SUBDIR)/zlib.tar.gz   : $(SUBDIR)/version_zlib.txt ;
386 Zlib $(SUBDIR)/lib/libz.a : $(SUBDIR)/zlib.tar.gz ;
387 }
388
389 rule LibMkv
390 {
391     Depends $(<) : $(>) ;
392     Depends lib  : $(<) ;
393 }
394 actions LibMkv
395 {
396     cd `dirname $(>)` && CONTRIB=`pwd` &&
397     rm -rf libmkv && tar xzf libmkv.tar.gz && cd libmkv &&
398     ./configure --disable-shared --enable-static --prefix=$CONTRIB &&
399     make && make install &&
400     strip -S $CONTRIB/lib/libmkv.a
401 }
402 Wget    $(SUBDIR)/libmkv.tar.gz : $(SUBDIR)/version_libmkv.txt ;
403 LibMkv  $(SUBDIR)/lib/libmkv.a  : $(SUBDIR)/libmkv.tar.gz ;