OSDN Git Service

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