OSDN Git Service

Don't drop subtitles when crossing PTS discontinuities by using buffer sequence numbe...
[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 --cache-file=$CONTRIB/config.cache && 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 --enable-gpl --enable-pthreads --enable-swscaler --disable-audio-beos --disable-shared --enable-static \
65         --disable-decoders --enable-decoder=mp2 --disable-parsers --enable-parser=mpegaudio \
66         --disable-encoders --enable-encoder=mpeg4 --enable-encoder=ac3 --enable-encoder=snow \
67         --disable-muxers --enable-muxer=ipod --disable-demuxers --disable-protocols --disable-bsfs &&
68     make && make install &&
69     strip -S $CONTRIB/lib/libavcodec.a
70 }
71 Wget       $(SUBDIR)/ffmpeg.tar.gz    : $(SUBDIR)/version_ffmpeg.txt ;
72 LibAvCodec $(SUBDIR)/lib/libavcodec.a : $(SUBDIR)/ffmpeg.tar.gz ;
73
74 rule LibAvUtil
75 {
76     Depends $(<) : $(>) ;
77     Depends lib  : $(<) ;
78 }
79 actions LibAvUtil
80 {
81     strip -S $(<)
82 }
83 LibAvUtil $(SUBDIR)/lib/libavutil.a : $(SUBDIR)/lib/libavcodec.a ;
84 LibAvUtil $(SUBDIR)/lib/libavformat.a : $(SUBDIR)/lib/libavcodec.a ;
85 LibAvUtil $(SUBDIR)/lib/libswscale.a : $(SUBDIR)/lib/libavcodec.a ;
86
87 # CSS doesn't work on Cygwin/Windows as of now, so don't use it.
88 if $(OS) != CYGWIN
89 {
90     # libdvdcss
91     # We need libdvdcss.so for libdvdread's configure to work...
92     rule LibDvdCss
93     {
94         Depends $(<) : $(>) ;
95         Depends lib  : $(<) ;
96     }
97     actions LibDvdCss
98     {
99         cd `dirname $(>)` && CONTRIB=`pwd` &&
100         rm -rf libdvdcss && tar xzf libdvdcss.tar.gz && cd libdvdcss &&
101         ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache && make && make install &&
102         strip -S $CONTRIB/lib/libdvdcss.a
103     }
104     Wget      $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
105     LibDvdCss $(SUBDIR)/lib/libdvdcss.a  : $(SUBDIR)/libdvdcss.tar.gz ;
106 }
107
108 # libdca
109 rule LibDCA
110 {
111     Depends $(<) : $(>) ;
112     Depends lib  : $(<) ;
113 }
114 actions LibDCA
115 {
116     cd `dirname $(>)` && CONTRIB=`pwd` &&
117     rm -rf libdca && tar xzf libdca.tar.gz && cd libdca && patch -p1 < ../patch-libdca.patch &&
118     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache && make && make install &&
119     strip -S $CONTRIB/lib/libdca.a
120 }
121 Wget   $(SUBDIR)/libdca.tar.gz : $(SUBDIR)/version_libdca.txt ;
122 LibDCA $(SUBDIR)/lib/libdca.a  : $(SUBDIR)/libdca.tar.gz ;
123
124 # libdvdread
125 rule LibDvdRead
126 {
127     Depends $(<) : $(>) ;
128     Depends lib  : $(<) ;
129 }
130 if $(OS) != CYGWIN
131 {
132     actions LibDvdRead
133     {
134         cd `dirname $(>)` && CONTRIB=`pwd` &&
135         rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
136         ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared --with-libdvdcss=$CONTRIB &&
137         make && make install &&
138         strip -S $CONTRIB/lib/libdvdread.a
139     }
140 }
141 else {
142     # Cygwin/Windows doesn't use CSS as of now, so don't include it on the
143     # configure line.
144     actions LibDvdRead
145     {
146         cd `dirname $(>)` && CONTRIB=`pwd` &&
147         rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
148         ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
149         make && make install &&
150         strip -S $CONTRIB/lib/libdvdread.a
151     }
152 }
153 Wget       $(SUBDIR)/libdvdread.tar.gz : $(SUBDIR)/version_libdvdread.txt ;
154 LibDvdRead $(SUBDIR)/lib/libdvdread.a  : $(SUBDIR)/libdvdread.tar.gz ;
155
156 # libfaac
157 rule LibFaac
158 {
159     Depends $(<) : $(>) ;
160     Depends lib  : $(<) ;
161 }
162 actions LibFaac
163 {
164     cd `dirname $(>)` && CONTRIB=`pwd` &&
165     rm -rf faac && tar xzf faac.tar.gz && cd faac &&
166     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared --enable-static &&
167     make && make install &&
168     strip -S $CONTRIB/lib/libfaac.a
169 }
170 Wget    $(SUBDIR)/faac.tar.gz   : $(SUBDIR)/version_faac.txt ;
171 LibFaac $(SUBDIR)/lib/libfaac.a : $(SUBDIR)/faac.tar.gz ;
172
173 # libmp3lame
174 rule LibMp3Lame
175 {
176     Depends $(<) : $(>) ;
177     Depends lib  : $(<) ;
178 }
179 actions LibMp3Lame
180 {
181     cd `dirname $(>)` && CONTRIB=`pwd` &&
182     rm -rf lame && tar xzf lame.tar.gz && cd lame &&
183     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
184     make && make install &&
185     strip -S $CONTRIB/lib/libmp3lame.a
186 }
187 Wget       $(SUBDIR)/lame.tar.gz      : $(SUBDIR)/version_lame.txt ;
188 LibMp3Lame $(SUBDIR)/lib/libmp3lame.a : $(SUBDIR)/lame.tar.gz ;
189
190 # libmp4v2
191 rule LibMp4v2
192 {
193     Depends $(<) : $(>) ;
194     Depends lib  : $(<) ;
195 }
196 if $(OS) != CYGWIN
197 {
198     actions LibMp4v2
199     {
200         cd `dirname $(>)` && CONTRIB=`pwd` &&
201         rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
202         patch -p1 < ../patch-mpeg4ip.patch && patch -p0 < ../patch-mpeg4ip-pascal-str.patch &&
203         ./bootstrap --cache-file=$CONTRIB/config.cache --disable-mp3lame --disable-faac --disable-x264 --disable-server --disable-player &&
204         make -C lib/mp4v2 libmp4v2.la && cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
205         cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
206             include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
207         strip -S $CONTRIB/lib/libmp4v2.a
208     }
209 }
210 else
211 {
212     actions LibMp4v2
213     {
214         cd `dirname $(>)` && CONTRIB=`pwd` &&
215         rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
216         patch -p1 < ../patch-mpeg4ip.patch && patch -p1 < ../patch_mpeg4ip_cygwin.patch && patch -p0 < ../patch-mpeg4ip-pascal-str.patch &&
217         ./bootstrap --cache-file=$CONTRIB/config.cache --disable-mp3lame --disable-faac --disable-x264 --disable-server --disable-player &&
218         make -C lib/mp4v2 libmp4v2.la && cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
219         cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
220             include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
221         strip -S $CONTRIB/lib/libmp4v2.a
222     }
223 }
224 Wget     $(SUBDIR)/mpeg4ip.tar.gz : $(SUBDIR)/version_mpeg4ip.txt ;
225 LibMp4v2 $(SUBDIR)/lib/libmp4v2.a : $(SUBDIR)/mpeg4ip.tar.gz ;
226
227 rule LibMkv
228 {
229     Depends $(<) : $(>) ;
230     Depends lib  : $(<) ;
231 }
232 actions LibMkv
233 {
234     cd `dirname $(>)` && CONTRIB=`pwd` &&
235     rm -rf libmkv && tar xzf libmkv.tar.gz && cd libmkv &&
236     ./configure --disable-shared --enable-static --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache &&
237     make && make install &&
238     strip -S $CONTRIB/lib/libmkv.a
239 }
240 Wget    $(SUBDIR)/libmkv.tar.gz : $(SUBDIR)/version_libmkv.txt ;
241 LibMkv  $(SUBDIR)/lib/libmkv.a  : $(SUBDIR)/libmkv.tar.gz ;
242
243 # libmpeg2
244 rule LibMpeg2
245 {
246     Depends $(<) : $(>) ;
247     Depends lib  : $(<) ;
248 }
249 actions LibMpeg2
250 {
251     cd `dirname $(>)` && CONTRIB=`pwd` &&
252     rm -rf mpeg2dec && tar xzf mpeg2dec.tar.gz && cd mpeg2dec && patch -p1 < ../patch-libmpeg2.patch &&
253     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared --disable-sdl &&
254     make && make install &&
255     strip -S $CONTRIB/lib/libmpeg2.a
256 }
257 Wget     $(SUBDIR)/mpeg2dec.tar.gz : $(SUBDIR)/version_mpeg2dec.txt ;
258 LibMpeg2 $(SUBDIR)/lib/libmpeg2.a  : $(SUBDIR)/mpeg2dec.tar.gz ;
259
260 # libogg
261 rule LibOgg
262 {
263     Depends $(<) : $(>) ;
264     Depends lib  : $(<) ;
265 }
266 actions LibOgg
267 {
268     cd `dirname $(>)` && CONTRIB=`pwd` &&
269     rm -rf libogg && tar xzf libogg.tar.gz && cd libogg &&
270     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
271     make && make install &&
272     strip -S $CONTRIB/lib/libogg.a
273 }
274 Wget   $(SUBDIR)/libogg.tar.gz : $(SUBDIR)/version_libogg.txt ;
275 LibOgg $(SUBDIR)/lib/libogg.a  : $(SUBDIR)/libogg.tar.gz ;
276
277 # libsamplerate
278 rule LibSampleRate
279 {
280     Depends $(<) : $(>) ;
281     Depends lib  : $(<) ;
282 }
283 actions LibSampleRate
284 {
285     cd `dirname $(>)` && CONTRIB=`pwd` &&
286     rm -rf libsamplerate && tar xzf libsamplerate.tar.gz && cd libsamplerate &&
287     ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
288     make && make install &&
289     strip -S $CONTRIB/lib/libsamplerate.a
290 }
291 Wget          $(SUBDIR)/libsamplerate.tar.gz : $(SUBDIR)/version_libsamplerate.txt ;
292 LibSampleRate $(SUBDIR)/lib/libsamplerate.a  : $(SUBDIR)/libsamplerate.tar.gz ;
293
294 # libvorbis
295 rule LibVorbis
296 {
297     Depends $(<) : $(>) ;
298     Depends lib  : $(<) ;
299 }
300 actions LibVorbis
301 {
302     cd `dirname $(>)` && CONTRIB=`pwd` &&
303     rm -rf libvorbis && tar xzf libvorbis.tar.gz && cd libvorbis &&
304     ./configure --prefix=$CONTRIB --with-ogg=$CONTRIB --cache-file=$CONTRIB/config.cache --disable-shared &&
305     make && make install &&
306     strip -S $CONTRIB/lib/libvorbis.a
307 }
308 Wget      $(SUBDIR)/libvorbis.tar.gz : $(SUBDIR)/version_libvorbis.txt ;
309 LibVorbis $(SUBDIR)/lib/libvorbis.a  : $(SUBDIR)/libvorbis.tar.gz ;
310
311 rule LibVorbisEnc
312 {
313     Depends $(<) : $(>) ;
314     Depends lib  : $(<) ;
315 }
316 actions LibVorbisEnc
317 {
318     strip -S $(<)
319 }
320 LibVorbisEnc $(SUBDIR)/lib/libvorbisenc.a : $(SUBDIR)/lib/libvorbis.a ;
321
322 # libx264
323 rule LibX264
324 {
325     LIBX264_PATCH = "" ;
326     if $(OS) = MACOSX && $(OSPLAT) = X86
327     {
328         LIBX264_PATCH += "patch -p1 < ../patch-x264-macintel.patch && " ;
329     }
330     else if $(OS) = CYGWIN
331     {
332         LIBX264_PATCH += "patch -p1 < ../patch-x264-cygwin.patch && " ;
333     }
334     LIBX264_PATCH += "patch -p0 < ../patch-x264-aq.patch && " ;
335     LIBX264_PATCH += "patch -p0 < ../patch-x264-idr.patch && " ;
336     Depends $(<) : $(>) ;
337     Depends lib  : $(<) ;
338 }
339 actions LibX264
340 {
341     cd `dirname $(>)` && CONTRIB=`pwd` &&
342     rm -rf x264 && tar xzf x264.tar.gz && cd x264 && $(LIBX264_PATCH)
343     ./configure --prefix=$CONTRIB --enable-pthread && make &&
344     make install &&
345     strip -S $CONTRIB/lib/libx264.a
346 }
347 Wget    $(SUBDIR)/x264.tar.gz   : $(SUBDIR)/version_x264.txt ;
348 LibX264 $(SUBDIR)/lib/libx264.a : $(SUBDIR)/x264.tar.gz ;
349
350 # libxvidcore
351 rule LibXvidCore
352 {
353     LIBXVIDCORE_PATCH = "" ;
354     if $(OS) = MACOSX
355     {
356         LIBXVIDCORE_PATCH = "patch -p1 < ../patch-xvidcore-macosx.patch && " ;
357     }
358     else if $(OS) = CYGWIN
359     {
360         LIBXVIDCORE_PATCH = "patch -p1 < ../patch-xvidcore-cygwin.patch && " ;
361     }
362     Depends $(<) : $(>) ;
363     Depends lib  : $(<) ;
364 }
365 actions LibXvidCore
366 {
367     cd `dirname $(>)` && CONTRIB=`pwd` &&
368     rm -rf xvidcore && tar xzf xvidcore.tar.gz &&
369     cd xvidcore && $(LIBXVIDCORE_PATCH)
370     cd build/generic/ && ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache && make libxvidcore.a &&
371     cp ./=build/libxvidcore.a $CONTRIB/lib/ &&
372     cp ../../src/xvid.h $CONTRIB/include/ &&
373     strip -S $CONTRIB/lib/libxvidcore.a
374 }
375 Wget        $(SUBDIR)/xvidcore.tar.gz   : $(SUBDIR)/version_xvidcore.txt ;
376 LibXvidCore $(SUBDIR)/lib/libxvidcore.a : $(SUBDIR)/xvidcore.tar.gz ;
377
378 # zlib
379 if $(OS) = CYGWIN
380 {
381     rule Zlib
382     {
383         Depends $(<) : $(>) ;
384         Depends lib  : $(<) ;
385     }
386     actions Zlib
387     {
388         cd `dirname $(>)` && CONTRIB=`pwd` &&
389         rm -rf zlib && tar xzf zlib.tar.gz &&
390         cd zlib && ./configure --prefix=$CONTRIB --cache-file=$CONTRIB/config.cache &&
391         make && make install && touch $CONTRIB/.contrib &&
392         strip -S $CONTRIB/lib/libz.a
393     }
394     Wget  $(SUBDIR)/zlib.tar.gz : $(SUBDIR)/version_zlib.txt ;
395     Zlib  $(SUBDIR)/lib/libz.a  : $(SUBDIR)/zlib.tar.gz ;
396 }