OSDN Git Service

import 0.9.4
[handbrake-jp/handbrake-jp.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 -q -L -o ;
8 }
9 else
10 {
11     WGET = wget -O ;
12 }
13
14 if $(OS) = UNKNOWN
15 {
16     OS = CYGWIN ;
17 }
18
19 if $(OS) = SOLARIS
20 {
21     PATCH = gpatch ;
22     STRIP = echo ;
23 }
24 else
25 {
26     PATCH = patch ;
27     STRIP = strip -S ;
28 }
29
30 # Wget rule: downloads $(<) from the link in $(>)
31 rule Wget
32 {
33     Depends $(<) : $(>) ;
34 }
35 actions Wget
36 {
37     $(RM) $(<) &&
38     $(WGET) $(<) `cat $(>)` &&
39     ( touch $(<) || true )
40 }
41
42 # liba52
43 rule LibA52
44 {
45     Depends $(<) : $(>) ;
46     Depends lib  : $(<) ;
47 }
48 actions LibA52
49 {
50
51     cd `dirname $(>)` && CONTRIB=`pwd` &&
52     rm -rf a52dec && (gzip -dc a52dec.tar.gz | tar xf -) && 
53     cd a52dec && $(PATCH) -p1 < ../patch-a52dec.patch &&
54     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache && $(MAKE) && $(MAKE) install &&
55     $(STRIP) $CONTRIB/lib/liba52.a
56 }
57 Wget   $(SUBDIR)/a52dec.tar.gz : $(SUBDIR)/version_a52dec.txt ;
58 LibA52 $(SUBDIR)/lib/liba52.a  : $(SUBDIR)/a52dec.tar.gz ;
59
60 # FAAD2
61 rule LibFaad2
62 {
63     Depends $(<) : $(>) ;
64     Depends lib  : $(<) ;
65 }
66
67 actions LibFaad2
68 {
69     cd `dirname $(>)` && CONTRIB=`pwd` &&
70     rm -rf faad2 && (gzip -dc faad2.tar.gz | tar xf -) &&
71     cd faad2 && $(PATCH) -p1 < ../patch-faad2-libtool22.patch &&
72     ./bootstrap && ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared && $(MAKE) && $(MAKE) install
73 }
74 Wget     $(SUBDIR)/faad2.tar.gz    : $(SUBDIR)/version_faad2.txt ;
75 LibFaad2 $(SUBDIR)/lib/libfaad.a : $(SUBDIR)/faad2.tar.gz ;
76
77 # libavcodec
78 rule LibAvCodec
79 {
80     FFMPEG_PATCH = "$(PATCH) -p0 < ../patch-ffmpeg.patch" ;
81     FFMPEG_PATCH += " && $(PATCH) -p0 < ../patch-ffmpeg-latm.patch " ;
82     FFMPEG_PATCH += " && $(PATCH) -p0 < ../patch-ffmpeg-mpegleak.patch " ;
83     if $(OS) = CYGWIN
84     {
85         FFMPEG_PATCH += " && $(PATCH) -p1 < ../patch-ffmpeg-cygwin.patch " ;
86     }
87     else if $(OS) = SOLARIS
88     {
89         FFMPEG_PATCH += " && $(PATCH) -p1 < ../patch-ffmpeg-solaris.patch " ;
90     } 
91
92     if $(OS) = SOLARIS
93     {
94        #
95        # Not all of ffmpeg works on Solaris - disable the bits that
96        # don't. When we get new versions of FFMPEG we can try enabling
97        # then again.
98        #
99        FFMPEG_EXTRA_OPTIONS = "--disable-vis --disable-demuxer=mpc8 --disable-vhook --disable-network" ;
100     }
101
102     Depends $(<) : $(>) ;
103     Depends lib  : $(<) ;
104 }
105 actions LibAvCodec
106 {
107     cd `dirname $(>)` && CONTRIB=`pwd` &&
108     rm -rf ffmpeg && (gzip -dc ffmpeg.tar.gz | tar xf -) &&
109     cd ffmpeg && $(FFMPEG_PATCH) &&
110     ./configure --prefix=$CONTRIB --enable-gpl --enable-pthreads --enable-swscale \
111         --disable-shared --enable-static --disable-encoders \
112         --enable-encoder=mpeg4 --enable-encoder=ac3 --enable-encoder=snow \
113         --enable-libfaad --disable-ffmpeg --disable-ffserver \
114         --disable-muxers --enable-muxer=ipod --disable-bsfs \
115         --extra-cflags="-I$CONTRIB/include" \
116         --extra-ldflags="-L$CONTRIB/lib" $(FFMPEG_EXTRA_OPTIONS) &&
117     $(MAKE) && $(MAKE) install &&
118     $(STRIP) $CONTRIB/lib/libavcodec.a
119 }
120 Wget       $(SUBDIR)/ffmpeg.tar.gz    : $(SUBDIR)/version_ffmpeg.txt ;
121 LibAvCodec $(SUBDIR)/lib/libavcodec.a : $(SUBDIR)/ffmpeg.tar.gz ;
122
123 rule LibAvUtil
124 {
125     Depends $(<) : $(>) ;
126     Depends lib  : $(<) ;
127 }
128 actions LibAvUtil
129 {
130     $(STRIP) $(<)
131 }
132 LibAvUtil $(SUBDIR)/lib/libavutil.a : $(SUBDIR)/lib/libavcodec.a ;
133 LibAvUtil $(SUBDIR)/lib/libavformat.a : $(SUBDIR)/lib/libavcodec.a ;
134 LibAvUtil $(SUBDIR)/lib/libswscale.a : $(SUBDIR)/lib/libavcodec.a ;
135
136 # HandBrake does not include a DVD decrypting library,
137 # so if a user requests it, let them download and compile it from a 3rd party
138 if $(CSS) = 1
139 {
140     # libdvdcss
141     # We need libdvdcss.so for libdvdread's configure to work...
142     rule LibDvdCss
143     {
144         Depends $(<) : $(>) ;
145         Depends lib  : $(<) ;
146     }
147     actions LibDvdCss
148     {
149         cd `dirname $(>)` && CONTRIB=`pwd` &&
150         rm -rf libdvdcss-1.2.9 && (gzip -dc libdvdcss.tar.gz | tar xf - ) && 
151         cd libdvdcss-1.2.9 &&
152         ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache && $(MAKE) && $(MAKE) install &&
153         $(STRIP) $CONTRIB/lib/libdvdcss.a
154     }
155     Wget      $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
156     LibDvdCss $(SUBDIR)/lib/libdvdcss.a  : $(SUBDIR)/libdvdcss.tar.gz ;
157 }
158
159 # libdca
160 rule LibDCA
161 {
162     Depends $(<) : $(>) ;
163     Depends lib  : $(<) ;
164 }
165 actions LibDCA
166 {
167     cd `dirname $(>)` && CONTRIB=`pwd` &&
168     rm -rf libdca && (gzip -dc libdca.tar.gz | tar xf - ) && 
169     cd libdca && $(PATCH) -p1 < ../patch-libdca.patch &&
170     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache && $(MAKE) && $(MAKE) install &&
171     $(STRIP) $CONTRIB/lib/libdca.a
172 }
173 Wget   $(SUBDIR)/libdca.tar.gz : $(SUBDIR)/version_libdca.txt ;
174 LibDCA $(SUBDIR)/lib/libdca.a  : $(SUBDIR)/libdca.tar.gz ;
175
176 # libdvdread
177 rule LibDvdRead
178 {
179     Depends $(<) : $(>) ;
180     Depends lib  : $(<) ;
181     
182     if $(OS) = MACOSX
183     {
184         DVDREAD_PATCH = "$(PATCH) -p0 < ../patch-libdvdread-css-vlc-dylib.patch &&" ;
185     }
186         
187     if $(OS) = CYGWIN
188     {
189         DVDREAD_PATCH = "$(PATCH) -p1 < ../patch-libdvdread-cygwin.patch &&" ;
190     }
191     
192 }
193 if $(CSS) = 1 # Include CSS support in libdvdread if requested
194 {
195     actions LibDvdRead
196     {
197         cd `dirname $(>)` && CONTRIB=`pwd` &&
198         rm -rf libdvdread && (gzip -dc libdvdread.tar.gz | tar xf - ) && 
199         cd libdvdread &&
200         ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared --with-libdvdcss=$CONTRIB &&
201         $(MAKE) && $(MAKE) install &&
202         $(STRIP) $CONTRIB/lib/libdvdread.a
203     }
204 }
205 else {
206     # Cygwin/Windows doesn't use CSS as of now, so don't include it on the
207     # configure line.
208     # MacOSX uses a dylib for CSS, so it doesn't need including there either.
209     actions LibDvdRead
210     {
211         cd `dirname $(>)` && CONTRIB=`pwd` &&
212         rm -rf libdvdread && (gzip -dc libdvdread.tar.gz | tar xf - ) &&
213         cd libdvdread && $(DVDREAD_PATCH)
214         ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
215         $(MAKE) && $(MAKE) install &&
216         $(STRIP) $CONTRIB/lib/libdvdread.a
217     }
218 }
219 Wget       $(SUBDIR)/libdvdread.tar.gz : $(SUBDIR)/version_libdvdread.txt ;
220 LibDvdRead $(SUBDIR)/lib/libdvdread.a  : $(SUBDIR)/libdvdread.tar.gz ;
221
222 # libfaac
223 rule LibFaac
224 {
225     Depends $(<) : $(>) ;
226     Depends lib  : $(<) ;
227         if $(OS) = CYGWIN
228     {
229         CYGWIN_PATCH = "$(PATCH) -p1 < ../patch-faac-cygwin.patch &&" ;
230     }
231 }
232 actions LibFaac
233 {
234     cd `dirname $(>)` && CONTRIB=`pwd` &&
235     rm -rf faac && (gzip -dc faac.tar.gz | tar xf - ) && cd faac && $(CYGWIN_PATCH) ./bootstrap &&
236     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared --enable-static --without-mp4v2 &&
237     $(MAKE) && $(MAKE) install &&
238     $(STRIP) $CONTRIB/lib/libfaac.a
239 }
240 Wget    $(SUBDIR)/faac.tar.gz   : $(SUBDIR)/version_faac.txt ;
241 LibFaac $(SUBDIR)/lib/libfaac.a : $(SUBDIR)/faac.tar.gz ;
242
243 # libmp3lame
244 rule LibMp3Lame
245 {
246     Depends $(<) : $(>) ;
247     Depends lib  : $(<) ;
248 }
249 actions LibMp3Lame
250 {
251     cd `dirname $(>)` && CONTRIB=`pwd` &&
252     rm -rf lame && (gzip -dc lame.tar.gz | tar xf - ) && cd lame &&
253     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
254     $(MAKE) && $(MAKE) install &&
255     $(STRIP) $CONTRIB/lib/libmp3lame.a
256 }
257 Wget       $(SUBDIR)/lame.tar.gz      : $(SUBDIR)/version_lame.txt ;
258 LibMp3Lame $(SUBDIR)/lib/libmp3lame.a : $(SUBDIR)/lame.tar.gz ;
259
260 # libmp4v2
261 rule LibMp4v2
262 {
263     LIBMP4V2_PATCH = "" ;
264     Depends $(<) : $(>) ;
265     Depends lib  : $(<) ;
266 }
267 actions LibMp4v2
268 {
269     cd `dirname $(>)` && CONTRIB=`pwd` &&
270     rm -rf libmp4v2 && (gzip -dc libmp4v2.tar.gz | tar xf - ) &&
271     cd libmp4v2 && $(LIBMP4V2_PATCH) ./configure --prefix=$CONTRIB &&
272     $(MAKE) && make install &&
273     $(STRIP) $CONTRIB/lib/libmp4v2.a
274 }
275 Wget     $(SUBDIR)/libmp4v2.tar.gz : $(SUBDIR)/version_libmp4v2.txt ;
276 LibMp4v2 $(SUBDIR)/lib/libmp4v2.a : $(SUBDIR)/libmp4v2.tar.gz ;
277
278 rule LibMkv
279 {
280     Depends $(<) : $(>) ;
281     Depends lib  : $(<) ;
282 }
283 actions LibMkv
284 {
285     cd `dirname $(>)` && CONTRIB=`pwd` &&
286     rm -rf libmkv && (gzip -dc libmkv.tar.gz | tar xf - ) && 
287     cd libmkv &&
288     ./configure --disable-shared --enable-static --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache &&
289     $(MAKE) && $(MAKE) install &&
290     $(STRIP) $CONTRIB/lib/libmkv.a
291 }
292 Wget    $(SUBDIR)/libmkv.tar.gz : $(SUBDIR)/version_libmkv.txt ;
293 LibMkv  $(SUBDIR)/lib/libmkv.a  : $(SUBDIR)/libmkv.tar.gz ;
294
295 # libmpeg2
296 rule LibMpeg2
297 {
298     Depends $(<) : $(>) ;
299     Depends lib  : $(<) ;
300 }
301 actions LibMpeg2
302 {
303     cd `dirname $(>)` && CONTRIB=`pwd` &&
304     rm -rf mpeg2dec && (gzip -dc mpeg2dec.tar.gz | tar xf - ) && 
305     cd mpeg2dec &&
306     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared --disable-sdl --without-x &&
307     $(MAKE) && $(MAKE) install &&
308     $(STRIP) $CONTRIB/lib/libmpeg2.a
309 }
310 Wget     $(SUBDIR)/mpeg2dec.tar.gz : $(SUBDIR)/version_mpeg2dec.txt ;
311 LibMpeg2 $(SUBDIR)/lib/libmpeg2.a  : $(SUBDIR)/mpeg2dec.tar.gz ;
312
313 # libogg
314 rule LibOgg
315 {
316     Depends $(<) : $(>) ;
317     Depends lib  : $(<) ;
318 }
319 actions LibOgg
320 {
321     cd `dirname $(>)` && CONTRIB=`pwd` &&
322     rm -rf libogg && (gzip -dc libogg.tar.gz | tar xf - ) && 
323     cd libogg &&
324     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
325     $(MAKE) && $(MAKE) install &&
326     $(STRIP) $CONTRIB/lib/libogg.a
327 }
328 Wget   $(SUBDIR)/libogg.tar.gz : $(SUBDIR)/version_libogg.txt ;
329 LibOgg $(SUBDIR)/lib/libogg.a  : $(SUBDIR)/libogg.tar.gz ;
330
331 # libsamplerate
332 rule LibSampleRate
333 {
334     Depends $(<) : $(>) ;
335     Depends lib  : $(<) ;
336 }
337 actions LibSampleRate
338 {
339     cd `dirname $(>)` && CONTRIB=`pwd` &&
340     rm -rf libsamplerate && (gzip -dc libsamplerate.tar.gz | tar xf - ) && 
341     cd libsamplerate &&
342     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
343     $(MAKE) && $(MAKE) install &&
344     $(STRIP) $CONTRIB/lib/libsamplerate.a
345 }
346 Wget          $(SUBDIR)/libsamplerate.tar.gz : $(SUBDIR)/version_libsamplerate.txt ;
347 LibSampleRate $(SUBDIR)/lib/libsamplerate.a  : $(SUBDIR)/libsamplerate.tar.gz ;
348
349 # libvorbis
350 rule LibVorbis
351 {
352     Depends $(<) : $(>) ;
353     Depends lib  : $(<) ;
354 }
355 actions LibVorbis
356 {
357     cd `dirname $(>)` && CONTRIB=`pwd` &&
358     rm -rf libvorbis && (gzip -dc libvorbis.tar.gz | tar xf - ) &&
359     cd libvorbis &&
360     ./configure --prefix=$CONTRIB --with-ogg=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
361     $(MAKE) && $(MAKE) install &&
362     $(STRIP) $CONTRIB/lib/libvorbis.a
363 }
364 Wget      $(SUBDIR)/libvorbis.tar.gz : $(SUBDIR)/version_libvorbis.txt ;
365 LibVorbis $(SUBDIR)/lib/libvorbis.a  : $(SUBDIR)/libvorbis.tar.gz ;
366
367 rule LibVorbisEnc
368 {
369     Depends $(<) : $(>) ;
370     Depends lib  : $(<) ;
371 }
372 actions LibVorbisEnc
373 {
374     $(STRIP) $(<)
375 }
376 LibVorbisEnc $(SUBDIR)/lib/libvorbisenc.a : $(SUBDIR)/lib/libvorbis.a ;
377
378 # libtheora
379 rule LibTheora
380 {
381     Depends $(<) : $(>) ;
382     Depends lib  : $(<) ;
383 }
384 actions LibTheora
385 {
386     cd `dirname $(>)` && CONTRIB=`pwd` && rm -rf libtheora &&
387     (gzip -dc libtheora.tar.gz | tar xf - ) && cd libtheora &&
388     HAVE_PKG_CONFIG="no" && export HAVE_PKG_CONFIG &&
389     ./configure --prefix=$CONTRIB --with-ogg=$CONTRIB --with-vorbis=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared \
390             --disable-oggtest --disable-vorbistest --disable-sdltest --disable-examples &&
391     $(MAKE) && $(MAKE) install &&
392     $(STRIP) $CONTRIB/lib/libtheora.a
393 }
394 Wget      $(SUBDIR)/libtheora.tar.gz : $(SUBDIR)/version_libtheora.txt ;
395 LibTheora $(SUBDIR)/lib/libtheora.a  : $(SUBDIR)/libtheora.tar.gz ;
396
397 # libx264
398 rule LibX264
399 {
400     LIBX264_PATCH = "" ;
401     if $(OS) = CYGWIN
402     {
403         LIBX264_PATCH += "$(PATCH) -p1 < ../patch-x264-cygwin.patch && " ;
404     }
405     else if $(OS) = SOLARIS
406     {
407         LIBX264_PATCH += " $(PATCH) -p1 < ../patch-x264-solaris.patch && " ;
408     }
409     LIBX264_PATCH += "$(PATCH) -p0 < ../patch-x264-idr.patch && " ;
410         Depends $(<) : $(>) ;
411     Depends lib  : $(<) ;
412 }
413 actions LibX264
414 {
415     cd `dirname $(>)` && CONTRIB=`pwd` &&
416     rm -rf x264 && (gzip -dc x264.tar.gz | tar xf - ) && 
417     cd x264 && $(LIBX264_PATCH)
418     bash ./configure --prefix=$CONTRIB --enable-pthread &&
419     $(MAKE) libx264.a && cp libx264.a $CONTRIB/lib/ && cp x264.h $CONTRIB/include/ && $(STRIP) $CONTRIB/lib/libx264.a
420 }
421 Wget    $(SUBDIR)/x264.tar.gz   : $(SUBDIR)/version_x264.txt ;
422 LibX264 $(SUBDIR)/lib/libx264.a : $(SUBDIR)/x264.tar.gz ;
423
424 # libxvidcore
425 rule LibXvidCore
426 {
427     LIBXVIDCORE_PATCH = "" ;
428     if $(OS) = MACOSX
429     {
430         LIBXVIDCORE_PATCH = "$(PATCH) -p1 < ../patch-xvidcore-macosx.patch && " ;
431     }
432     else if $(OS) = CYGWIN
433     {
434         LIBXVIDCORE_PATCH = "$(PATCH) -p1 < ../patch-xvidcore-cygwin.patch && " ;
435     }
436     LIBXVIDCORE_PATCH += "$(PATCH) -p1 < ../patch-xvidcore-nasm-2.00-configure.patch && " ;
437     LIBXVIDCORE_PATCH += "$(PATCH) -p1 < ../patch-xvidcore-fdct.patch && " ;
438     Depends $(<) : $(>) ;
439     Depends lib  : $(<) ;
440 }
441 actions LibXvidCore
442 {
443     cd `dirname $(>)` && CONTRIB=`pwd` &&
444     rm -rf xvidcore && (gzip -dc xvidcore.tar.gz | tar xf - ) &&
445     cd xvidcore && $(LIBXVIDCORE_PATCH)
446     cd build/generic/ && ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache && $(MAKE) libxvidcore.a &&
447     cp ./=build/libxvidcore.a $CONTRIB/lib/ &&
448     cp ../../src/xvid.h $CONTRIB/include/ &&
449     $(STRIP) $CONTRIB/lib/libxvidcore.a
450 }
451 Wget        $(SUBDIR)/xvidcore.tar.gz   : $(SUBDIR)/version_xvidcore.txt ;
452 LibXvidCore $(SUBDIR)/lib/libxvidcore.a : $(SUBDIR)/xvidcore.tar.gz ;
453
454 # zlib
455 if $(OS) = CYGWIN
456 {
457     rule Zlib
458     {
459         Depends $(<) : $(>) ;
460         Depends lib  : $(<) ;
461     }
462     actions Zlib
463     {
464         cd `dirname $(>)` && CONTRIB=`pwd` &&
465         rm -rf zlib && (gzip -dc zlib.tar.gz | tar xf - ) &&
466         cd zlib && ./configure --prefix=$CONTRIB &&
467         $(MAKE) && $(MAKE) install && touch $CONTRIB/.contrib &&
468         $(STRIP) $CONTRIB/lib/libz.a
469     }
470     Wget  $(SUBDIR)/zlib.tar.gz : $(SUBDIR)/version_zlib.txt ;
471     Zlib  $(SUBDIR)/lib/libz.a  : $(SUBDIR)/zlib.tar.gz ;
472 }
473
474 # bzip2
475 if $(OS) = CYGWIN
476 {
477     rule BZip2
478     {
479         Depends $(<) : $(>) ;
480         Depends lib  : $(<) ;
481     }
482     actions BZip2
483     {
484         cd `dirname $(>)` && CONTRIB=`pwd` &&
485         rm -rf bzip2 && (gzip -dc bzip2.tar.gz | tar xf - ) &&
486         cd bzip2 && $(MAKE) && $(MAKE) install && cp libbz2.a $CONTRIB/lib/ &&
487         $(STRIP) $CONTRIB/lib/libbz2.a
488     }
489     Wget  $(SUBDIR)/bzip2.tar.gz : $(SUBDIR)/version_bzip2.txt ;
490     BZip2  $(SUBDIR)/lib/libbz2.a  : $(SUBDIR)/bzip2.tar.gz ;
491 }