OSDN Git Service

33e9c2e5ba49935a079d7c228027233e4169f99a
[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 # Wget rule: downloads $(<) from the link in $(>)
15 rule Wget
16 {
17     Depends $(<) : $(>) ;
18 }
19 actions Wget
20 {
21     $(RM) $(<) &&
22     $(WGET) $(<) `cat $(>)` &&
23     ( touch $(<) || true )
24 }
25
26 # liba52
27 rule LibA52
28 {
29     Depends $(<) : $(>) ;
30     Depends lib  : $(<) ;
31 }
32 actions LibA52
33 {
34     cd `dirname $(>)` && CONTRIB=`pwd` &&
35     rm -rf a52dec && tar xzf a52dec.tar.gz && cd a52dec &&
36     ./configure --prefix=$CONTRIB && make && make install &&
37     strip -S $CONTRIB/lib/liba52.a
38 }
39 Wget   $(SUBDIR)/a52dec.tar.gz : $(SUBDIR)/version_a52dec.txt ;
40 LibA52 $(SUBDIR)/lib/liba52.a  : $(SUBDIR)/a52dec.tar.gz ;
41
42 # libavcodec
43 rule LibAvCodec
44 {
45     FFMPEG_PATCH = "patch -p1 < ../patch-ffmpeg.patch" ;
46     if $(OS) = MACOSX && $(OSPLAT) = X86
47     {
48        FFMPEG_OPTIONS  = --enable-memalign-hack ;
49      # This patch simply don't apply correctly so don't try to do it
50      #  FFMPEG_PATCH   += " && patch -p1 < ../patch-ffmpeg-macintel.patch" ;
51     }
52     else 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 --disable-audio-beos &&
65     make lib && make install-libs install-headers &&
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
83 # CSS doesn't work on Cygwin/Windows as of now, so don't use it.
84 if $(OS) != CYGWIN
85 {
86     # libdvdcss
87     # We need libdvdcss.so for libdvdread's configure to work...
88     rule LibDvdCss
89     {
90         Depends $(<) : $(>) ;
91         Depends lib  : $(<) ;
92     }
93     actions LibDvdCss
94     {
95         cd `dirname $(>)` && CONTRIB=`pwd` &&
96             rm -rf libdvdcss && tar xzf libdvdcss.tar.gz && cd libdvdcss &&
97             ./configure --prefix=$CONTRIB && make && make install &&
98             strip -S $CONTRIB/lib/libdvdcss.a
99     }
100     Wget      $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
101     LibDvdCss $(SUBDIR)/lib/libdvdcss.a  : $(SUBDIR)/libdvdcss.tar.gz ;
102 }
103
104 # libdvdread
105 rule LibDvdRead
106 {
107     LIBDVDREAD_PATCH = "patch -p1 < ../patch-libdvdread.patch" ;
108     Depends $(<) : $(>) ;
109     Depends lib  : $(<) ;
110 }
111 if $(OS) != CYGWIN
112 {
113     actions LibDvdRead
114     {
115         cd `dirname $(>)` && CONTRIB=`pwd` &&
116             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
117             $(LIBDVDREAD_PATCH) &&
118             ./configure --prefix=$CONTRIB --disable-shared --with-libdvdcss=$CONTRIB &&
119             make && make install &&
120             strip -S $CONTRIB/lib/libdvdread.a
121     }
122 }
123 else {
124     # Cygwin/Windows doesn't use CSS as of now, so don't include it on the
125     # configure line.
126     actions LibDvdRead
127     {
128         cd `dirname $(>)` && CONTRIB=`pwd` &&
129             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
130             $(LIBDVDREAD_PATCH) &&
131             ./configure --prefix=$CONTRIB --disable-shared &&
132             make && make install &&
133             strip -S $CONTRIB/lib/libdvdread.a
134     }
135 }
136 Wget       $(SUBDIR)/libdvdread.tar.gz : $(SUBDIR)/version_libdvdread.txt ;
137 LibDvdRead $(SUBDIR)/lib/libdvdread.a  : $(SUBDIR)/libdvdread.tar.gz ;
138
139 # libfaac
140 rule LibFaac
141 {
142     Depends $(<) : $(>) ;
143     Depends lib  : $(<) ;
144 }
145 actions LibFaac
146 {
147     cd `dirname $(>)` && CONTRIB=`pwd` &&
148     rm -rf faac && tar xzf faac.tar.gz && cd faac &&
149     ./configure --prefix=$CONTRIB --disable-shared &&
150     make && make install &&
151     strip -S $CONTRIB/lib/libfaac.a
152 }
153 Wget    $(SUBDIR)/faac.tar.gz   : $(SUBDIR)/version_faac.txt ;
154 LibFaac $(SUBDIR)/lib/libfaac.a : $(SUBDIR)/faac.tar.gz ;
155
156 # libmp3lame
157 rule LibMp3Lame
158 {
159     Depends $(<) : $(>) ;
160     Depends lib  : $(<) ;
161 }
162 actions LibMp3Lame
163 {
164     cd `dirname $(>)` && CONTRIB=`pwd` &&
165     rm -rf lame && tar xzf lame.tar.gz && cd lame &&
166     ./configure --prefix=$CONTRIB --disable-shared &&
167     make && make install &&
168     strip -S $CONTRIB/lib/libmp3lame.a
169 }
170 Wget       $(SUBDIR)/lame.tar.gz      : $(SUBDIR)/version_lame.txt ;
171 LibMp3Lame $(SUBDIR)/lib/libmp3lame.a : $(SUBDIR)/lame.tar.gz ;
172
173 # libmpeg2
174 rule LibMpeg2
175 {
176     Depends $(<) : $(>) ;
177     Depends lib  : $(<) ;
178 }
179 actions LibMpeg2
180 {
181     cd `dirname $(>)` && CONTRIB=`pwd` &&
182     rm -rf mpeg2dec && tar xzf mpeg2dec.tar.gz && cd mpeg2dec &&
183     ./configure --prefix=$CONTRIB --disable-shared &&
184     make && make install &&
185     strip -S $CONTRIB/lib/libmpeg2.a
186 }
187 Wget     $(SUBDIR)/mpeg2dec.tar.gz : $(SUBDIR)/version_mpeg2dec.txt ;
188 LibMpeg2 $(SUBDIR)/lib/libmpeg2.a  : $(SUBDIR)/mpeg2dec.tar.gz ;
189
190 # libogg
191 rule LibOgg
192 {
193     Depends $(<) : $(>) ;
194     Depends lib  : $(<) ;
195 }
196 actions LibOgg
197 {
198     cd `dirname $(>)` && CONTRIB=`pwd` &&
199     rm -rf libogg && tar xzf libogg.tar.gz && cd libogg &&
200     ./configure --prefix=$CONTRIB --disable-shared &&
201     make && make install &&
202     strip -S $CONTRIB/lib/libogg.a
203 }
204 Wget   $(SUBDIR)/libogg.tar.gz : $(SUBDIR)/version_libogg.txt ;
205 LibOgg $(SUBDIR)/lib/libogg.a  : $(SUBDIR)/libogg.tar.gz ;
206
207 # libsamplerate
208 rule LibSampleRate
209 {
210     Depends $(<) : $(>) ;
211     Depends lib  : $(<) ;
212 }
213 actions LibSampleRate
214 {
215     cd `dirname $(>)` && CONTRIB=`pwd` &&
216     rm -rf libsamplerate && tar xzf libsamplerate.tar.gz && cd libsamplerate &&
217     ./configure --prefix=$CONTRIB --disable-shared &&
218     make && make install &&
219     strip -S $CONTRIB/lib/libsamplerate.a
220 }
221 Wget          $(SUBDIR)/libsamplerate.tar.gz : $(SUBDIR)/version_libsamplerate.txt ;
222 LibSampleRate $(SUBDIR)/lib/libsamplerate.a  : $(SUBDIR)/libsamplerate.tar.gz ;
223
224 # libvorbis
225 rule LibVorbis
226 {
227     Depends $(<) : $(>) ;
228     Depends lib  : $(<) ;
229 }
230 actions LibVorbis
231 {
232     cd `dirname $(>)` && CONTRIB=`pwd` &&
233     rm -rf libvorbis && tar xzf libvorbis.tar.gz && cd libvorbis &&
234     ./configure --prefix=$CONTRIB --with-ogg=$CONTRIB --disable-shared &&
235     make && make install &&
236     strip -S $CONTRIB/lib/libvorbis.a
237 }
238 Wget      $(SUBDIR)/libvorbis.tar.gz : $(SUBDIR)/version_libvorbis.txt ;
239 LibVorbis $(SUBDIR)/lib/libvorbis.a  : $(SUBDIR)/libvorbis.tar.gz ;
240
241 rule LibVorbisEnc
242 {
243     Depends $(<) : $(>) ;
244     Depends lib  : $(<) ;
245 }
246 actions LibVorbisEnc
247 {
248     strip -S $(<)
249 }
250 LibVorbisEnc $(SUBDIR)/lib/libvorbisenc.a : $(SUBDIR)/lib/libvorbis.a ;
251
252 # libx264
253 rule LibX264
254 {
255     LIBX264_PATCH = "" ;
256     if $(OS) = MACOSX && $(OSPLAT) = X86
257     {
258         LIBX264_PATCH = " patch -p1 < ../patch-x264-macintel.patch && " ;
259     }
260     else if $(OS) = CYGWIN
261     {
262         LIBX264_PATCH = " patch -p1 < ../patch-x264-cygwin.patch && " ;
263     }
264     Depends $(<) : $(>) ;
265     Depends lib  : $(<) ;
266 }
267 actions LibX264
268 {
269     cd `dirname $(>)` && CONTRIB=`pwd` &&
270     rm -rf x264 && tar xzf x264.tar.gz && cd x264 && $(LIBX264_PATCH)
271     ./configure --prefix=$CONTRIB --enable-pthread && make &&
272     make install &&
273     strip -S $CONTRIB/lib/libx264.a
274 }
275 Wget    $(SUBDIR)/x264.tar.gz   : $(SUBDIR)/version_x264.txt ;
276 LibX264 $(SUBDIR)/lib/libx264.a : $(SUBDIR)/x264.tar.gz ;
277
278 # libxvidcore
279 rule LibXvidCore
280 {
281     LIBXVIDCORE_PATCH = "" ;
282     if $(OS) = MACOSX
283     {
284         LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-macosx.patch && " ;
285     }
286     else if $(OS) = CYGWIN
287     {
288         LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-cygwin.patch && " ;
289     }
290     Depends $(<) : $(>) ;
291     Depends lib  : $(<) ;
292 }
293 actions LibXvidCore
294 {
295     cd `dirname $(>)` && CONTRIB=`pwd` &&
296     rm -rf xvidcore && tar xzf xvidcore.tar.gz &&
297     cd xvidcore && $(LIBXVIDCORE_PATCH)
298     cd build/generic/ && ./configure && make libxvidcore.a &&
299     cp ./=build/libxvidcore.a $CONTRIB/lib/ &&
300     cp ../../src/xvid.h $CONTRIB/include/ &&
301     strip -S $CONTRIB/lib/libxvidcore.a
302 }
303 Wget        $(SUBDIR)/xvidcore.tar.gz   : $(SUBDIR)/version_xvidcore.txt ;
304 LibXvidCore $(SUBDIR)/lib/libxvidcore.a : $(SUBDIR)/xvidcore.tar.gz ;