OSDN Git Service

Merge the 0.8.0_mpeg4ip branch into the trunk
[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     cd `dirname $(>)` && CONTRIB=`pwd` &&
40     rm -rf a52dec && tar xzf a52dec.tar.gz && cd a52dec &&
41     ./configure --prefix=$CONTRIB && make && make install &&
42     strip -S $CONTRIB/lib/liba52.a
43 }
44 Wget   $(SUBDIR)/a52dec.tar.gz : $(SUBDIR)/version_a52dec.txt ;
45 LibA52 $(SUBDIR)/lib/liba52.a  : $(SUBDIR)/a52dec.tar.gz ;
46
47 # libavcodec
48 rule LibAvCodec
49 {
50     FFMPEG_PATCH = "patch -p1 < ../patch-ffmpeg.patch" ;
51     if $(OS) = MACOSX && $(OSPLAT) = X86
52     {
53        FFMPEG_OPTIONS  = --enable-memalign-hack ;
54      # This patch simply don't apply correctly so don't try to do it
55      #  FFMPEG_PATCH   += " && patch -p1 < ../patch-ffmpeg-macintel.patch" ;
56     }
57     else if $(OS) = CYGWIN
58     {
59         FFMPEG_PATCH += " && patch -p1 < ../patch-ffmpeg-cygwin.patch " ;
60     }
61     Depends $(<) : $(>) ;
62     Depends lib  : $(<) ;
63 }
64 actions LibAvCodec
65 {
66     cd `dirname $(>)` && CONTRIB=`pwd` &&
67     rm -rf ffmpeg && tar xzf ffmpeg.tar.gz &&
68     cd ffmpeg && $(FFMPEG_PATCH) &&
69     ./configure --prefix=$CONTRIB $(FFMPEG_OPTIONS) --enable-gpl --disable-audio-beos &&
70     make lib && make install-libs install-headers &&
71     strip -S $CONTRIB/lib/libavcodec.a
72 }
73 Wget       $(SUBDIR)/ffmpeg.tar.gz    : $(SUBDIR)/version_ffmpeg.txt ;
74 LibAvCodec $(SUBDIR)/lib/libavcodec.a : $(SUBDIR)/ffmpeg.tar.gz ;
75
76 rule LibAvUtil
77 {
78     Depends $(<) : $(>) ;
79     Depends lib  : $(<) ;
80 }
81 actions LibAvUtil
82 {
83     strip -S $(<)
84 }
85 LibAvUtil $(SUBDIR)/lib/libavutil.a : $(SUBDIR)/lib/libavcodec.a ;
86 LibAvUtil $(SUBDIR)/lib/libavformat.a : $(SUBDIR)/lib/libavcodec.a ;
87
88 # CSS doesn't work on Cygwin/Windows as of now, so don't use it.
89 if $(OS) != CYGWIN
90 {
91     # libdvdcss
92     # We need libdvdcss.so for libdvdread's configure to work...
93     rule LibDvdCss
94     {
95         Depends $(<) : $(>) ;
96         Depends lib  : $(<) ;
97     }
98     actions LibDvdCss
99     {
100         cd `dirname $(>)` && CONTRIB=`pwd` &&
101             rm -rf libdvdcss && tar xzf libdvdcss.tar.gz && cd libdvdcss &&
102             ./configure --prefix=$CONTRIB && make && make install &&
103             strip -S $CONTRIB/lib/libdvdcss.a
104     }
105     Wget      $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
106     LibDvdCss $(SUBDIR)/lib/libdvdcss.a  : $(SUBDIR)/libdvdcss.tar.gz ;
107 }
108
109 # libdvdread
110 rule LibDvdRead
111 {
112     LIBDVDREAD_PATCH = "patch -p1 < ../patch-libdvdread.patch" ;
113     Depends $(<) : $(>) ;
114     Depends lib  : $(<) ;
115 }
116 if $(OS) != CYGWIN
117 {
118     actions LibDvdRead
119     {
120         cd `dirname $(>)` && CONTRIB=`pwd` &&
121             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
122             $(LIBDVDREAD_PATCH) &&
123             ./configure --prefix=$CONTRIB --disable-shared --with-libdvdcss=$CONTRIB &&
124             make && make install &&
125             strip -S $CONTRIB/lib/libdvdread.a
126     }
127 }
128 else {
129     # Cygwin/Windows doesn't use CSS as of now, so don't include it on the
130     # configure line.
131     actions LibDvdRead
132     {
133         cd `dirname $(>)` && CONTRIB=`pwd` &&
134             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
135             $(LIBDVDREAD_PATCH) &&
136             ./configure --prefix=$CONTRIB --disable-shared &&
137             make && make install &&
138             strip -S $CONTRIB/lib/libdvdread.a
139     }
140 }
141 Wget       $(SUBDIR)/libdvdread.tar.gz : $(SUBDIR)/version_libdvdread.txt ;
142 LibDvdRead $(SUBDIR)/lib/libdvdread.a  : $(SUBDIR)/libdvdread.tar.gz ;
143
144 # libfaac
145 rule LibFaac
146 {
147     Depends $(<) : $(>) ;
148     Depends lib  : $(<) ;
149 }
150 actions LibFaac
151 {
152     cd `dirname $(>)` && CONTRIB=`pwd` &&
153     rm -rf faac && tar xzf faac.tar.gz && cd faac &&
154     ./configure --prefix=$CONTRIB --disable-shared &&
155     make && make install &&
156     strip -S $CONTRIB/lib/libfaac.a
157 }
158 Wget    $(SUBDIR)/faac.tar.gz   : $(SUBDIR)/version_faac.txt ;
159 LibFaac $(SUBDIR)/lib/libfaac.a : $(SUBDIR)/faac.tar.gz ;
160
161 # libmp3lame
162 rule LibMp3Lame
163 {
164     Depends $(<) : $(>) ;
165     Depends lib  : $(<) ;
166 }
167 actions LibMp3Lame
168 {
169     cd `dirname $(>)` && CONTRIB=`pwd` &&
170     rm -rf lame && tar xzf lame.tar.gz && cd lame &&
171     ./configure --prefix=$CONTRIB --disable-shared &&
172     make && make install &&
173     strip -S $CONTRIB/lib/libmp3lame.a
174 }
175 Wget       $(SUBDIR)/lame.tar.gz      : $(SUBDIR)/version_lame.txt ;
176 LibMp3Lame $(SUBDIR)/lib/libmp3lame.a : $(SUBDIR)/lame.tar.gz ;
177
178 # libmp4v2
179 rule LibMp4v2
180 {
181     Depends $(<) : $(>) ;
182     Depends lib  : $(<) ;
183 }
184 if $(OS) != CYGWIN
185 {
186         actions LibMp4v2
187         {
188         cd `dirname $(>)` && CONTRIB=`pwd` &&
189         rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
190         ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
191         cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
192         cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
193         include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
194         strip -S $CONTRIB/lib/libmp4v2.a
195         }
196 }
197 else
198 {
199         actions LibMp4v2
200         {
201         cd `dirname $(>)` && CONTRIB=`pwd` &&
202         rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
203         patch -p1 < ../patch_mpeg4ip_cygwin.patch && ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
204         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
211 Wget     $(SUBDIR)/mpeg4ip.tar.gz : $(SUBDIR)/version_mpeg4ip.txt ;
212 LibMp4v2 $(SUBDIR)/lib/libmp4v2.a : $(SUBDIR)/mpeg4ip.tar.gz ;
213
214 # libmpeg2
215 rule LibMpeg2
216 {
217     Depends $(<) : $(>) ;
218     Depends lib  : $(<) ;
219 }
220 actions LibMpeg2
221 {
222     cd `dirname $(>)` && CONTRIB=`pwd` &&
223     rm -rf mpeg2dec && tar xzf mpeg2dec.tar.gz && cd mpeg2dec &&
224     ./configure --prefix=$CONTRIB --disable-shared &&
225     make && make install &&
226     strip -S $CONTRIB/lib/libmpeg2.a
227 }
228 Wget     $(SUBDIR)/mpeg2dec.tar.gz : $(SUBDIR)/version_mpeg2dec.txt ;
229 LibMpeg2 $(SUBDIR)/lib/libmpeg2.a  : $(SUBDIR)/mpeg2dec.tar.gz ;
230
231 # libogg
232 rule LibOgg
233 {
234     Depends $(<) : $(>) ;
235     Depends lib  : $(<) ;
236 }
237 actions LibOgg
238 {
239     cd `dirname $(>)` && CONTRIB=`pwd` &&
240     rm -rf libogg && tar xzf libogg.tar.gz && cd libogg &&
241     ./configure --prefix=$CONTRIB --disable-shared &&
242     make && make install &&
243     strip -S $CONTRIB/lib/libogg.a
244 }
245 Wget   $(SUBDIR)/libogg.tar.gz : $(SUBDIR)/version_libogg.txt ;
246 LibOgg $(SUBDIR)/lib/libogg.a  : $(SUBDIR)/libogg.tar.gz ;
247
248 # libsamplerate
249 rule LibSampleRate
250 {
251     Depends $(<) : $(>) ;
252     Depends lib  : $(<) ;
253 }
254 actions LibSampleRate
255 {
256     cd `dirname $(>)` && CONTRIB=`pwd` &&
257     rm -rf libsamplerate && tar xzf libsamplerate.tar.gz && cd libsamplerate &&
258     ./configure --prefix=$CONTRIB --disable-shared &&
259     make && make install &&
260     strip -S $CONTRIB/lib/libsamplerate.a
261 }
262 Wget          $(SUBDIR)/libsamplerate.tar.gz : $(SUBDIR)/version_libsamplerate.txt ;
263 LibSampleRate $(SUBDIR)/lib/libsamplerate.a  : $(SUBDIR)/libsamplerate.tar.gz ;
264
265 # libvorbis
266 rule LibVorbis
267 {
268     Depends $(<) : $(>) ;
269     Depends lib  : $(<) ;
270 }
271 actions LibVorbis
272 {
273     cd `dirname $(>)` && CONTRIB=`pwd` &&
274     rm -rf libvorbis && tar xzf libvorbis.tar.gz && cd libvorbis &&
275     ./configure --prefix=$CONTRIB --with-ogg=$CONTRIB --disable-shared &&
276     make && make install &&
277     strip -S $CONTRIB/lib/libvorbis.a
278 }
279 Wget      $(SUBDIR)/libvorbis.tar.gz : $(SUBDIR)/version_libvorbis.txt ;
280 LibVorbis $(SUBDIR)/lib/libvorbis.a  : $(SUBDIR)/libvorbis.tar.gz ;
281
282 rule LibVorbisEnc
283 {
284     Depends $(<) : $(>) ;
285     Depends lib  : $(<) ;
286 }
287 actions LibVorbisEnc
288 {
289     strip -S $(<)
290 }
291 LibVorbisEnc $(SUBDIR)/lib/libvorbisenc.a : $(SUBDIR)/lib/libvorbis.a ;
292
293 # libx264
294 rule LibX264
295 {
296     LIBX264_PATCH = "" ;
297     if $(OS) = MACOSX && $(OSPLAT) = X86
298     {
299         LIBX264_PATCH = " patch -p1 < ../patch-x264-macintel.patch && " ;
300     }
301     else if $(OS) = CYGWIN
302     {
303         LIBX264_PATCH = " patch -p1 < ../patch-x264-cygwin.patch && " ;
304     }
305     Depends $(<) : $(>) ;
306     Depends lib  : $(<) ;
307 }
308 actions LibX264
309 {
310     cd `dirname $(>)` && CONTRIB=`pwd` &&
311     rm -rf x264 && tar xzf x264.tar.gz && cd x264 && $(LIBX264_PATCH)
312     ./configure --prefix=$CONTRIB --enable-pthread && make &&
313     make install &&
314     strip -S $CONTRIB/lib/libx264.a
315 }
316 Wget    $(SUBDIR)/x264.tar.gz   : $(SUBDIR)/version_x264.txt ;
317 LibX264 $(SUBDIR)/lib/libx264.a : $(SUBDIR)/x264.tar.gz ;
318
319 # libxvidcore
320 rule LibXvidCore
321 {
322     LIBXVIDCORE_PATCH = "" ;
323     if $(OS) = MACOSX
324     {
325         LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-macosx.patch && " ;
326     }
327     else if $(OS) = CYGWIN
328     {
329         LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-cygwin.patch && " ;
330     }
331     Depends $(<) : $(>) ;
332     Depends lib  : $(<) ;
333 }
334 actions LibXvidCore
335 {
336     cd `dirname $(>)` && CONTRIB=`pwd` &&
337     rm -rf xvidcore && tar xzf xvidcore.tar.gz &&
338     cd xvidcore && $(LIBXVIDCORE_PATCH)
339     cd build/generic/ && ./configure && make libxvidcore.a &&
340     cp ./=build/libxvidcore.a $CONTRIB/lib/ &&
341     cp ../../src/xvid.h $CONTRIB/include/ &&
342     strip -S $CONTRIB/lib/libxvidcore.a
343 }
344 Wget        $(SUBDIR)/xvidcore.tar.gz   : $(SUBDIR)/version_xvidcore.txt ;
345 LibXvidCore $(SUBDIR)/lib/libxvidcore.a : $(SUBDIR)/xvidcore.tar.gz ;