3 # Use curl on Mac OS X since it's always installed, and assume wget
4 # is installed for all other systems
19 # Wget rule: downloads $(<) from the link in $(>)
27 $(WGET) $(<) `cat $(>)` &&
28 ( touch $(<) || true )
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
44 Wget $(SUBDIR)/a52dec.tar.gz : $(SUBDIR)/version_a52dec.txt ;
45 LibA52 $(SUBDIR)/lib/liba52.a : $(SUBDIR)/a52dec.tar.gz ;
50 FFMPEG_PATCH = "patch -p1 < ../patch-ffmpeg.patch" ;
51 if $(OS) = MACOSX && $(OSPLAT) = X86
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" ;
57 else if $(OS) = CYGWIN
59 FFMPEG_PATCH += " && patch -p1 < ../patch-ffmpeg-cygwin.patch " ;
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 --enable-shared --enable-static&&
70 make && make install &&
71 strip -S $CONTRIB/lib/libavcodec.a
73 Wget $(SUBDIR)/ffmpeg.tar.gz : $(SUBDIR)/version_ffmpeg.txt ;
74 LibAvCodec $(SUBDIR)/lib/libavcodec.a : $(SUBDIR)/ffmpeg.tar.gz ;
85 LibAvUtil $(SUBDIR)/lib/libavutil.a : $(SUBDIR)/lib/libavcodec.a ;
86 LibAvUtil $(SUBDIR)/lib/libavformat.a : $(SUBDIR)/lib/libavcodec.a ;
88 # CSS doesn't work on Cygwin/Windows as of now, so don't use it.
92 # We need libdvdcss.so for libdvdread's configure to work...
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
105 Wget $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
106 LibDvdCss $(SUBDIR)/lib/libdvdcss.a : $(SUBDIR)/libdvdcss.tar.gz ;
112 # Not needed anymore since Clee fixed the problem in dvd.c
113 # LIBDVDREAD_PATCH = "patch -p1 < ../patch-libdvdread.patch" ;
114 Depends $(<) : $(>) ;
121 cd `dirname $(>)` && CONTRIB=`pwd` &&
122 rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
123 # $(LIBDVDREAD_PATCH) &&
124 ./configure --prefix=$CONTRIB --disable-shared --with-libdvdcss=$CONTRIB &&
125 make && make install &&
126 strip -S $CONTRIB/lib/libdvdread.a
130 # Cygwin/Windows doesn't use CSS as of now, so don't include it on the
134 cd `dirname $(>)` && CONTRIB=`pwd` &&
135 rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
136 # $(LIBDVDREAD_PATCH) &&
137 ./configure --prefix=$CONTRIB --disable-shared &&
138 make && make install &&
139 strip -S $CONTRIB/lib/libdvdread.a
142 Wget $(SUBDIR)/libdvdread.tar.gz : $(SUBDIR)/version_libdvdread.txt ;
143 LibDvdRead $(SUBDIR)/lib/libdvdread.a : $(SUBDIR)/libdvdread.tar.gz ;
148 Depends $(<) : $(>) ;
153 cd `dirname $(>)` && CONTRIB=`pwd` &&
154 rm -rf faac && tar xzf faac.tar.gz && cd faac &&
155 ./configure --prefix=$CONTRIB --enable-shared --enable-static &&
156 make && make install &&
157 strip -S $CONTRIB/lib/libfaac.a
159 Wget $(SUBDIR)/faac.tar.gz : $(SUBDIR)/version_faac.txt ;
160 LibFaac $(SUBDIR)/lib/libfaac.a : $(SUBDIR)/faac.tar.gz ;
165 Depends $(<) : $(>) ;
170 cd `dirname $(>)` && CONTRIB=`pwd` &&
171 rm -rf lame && tar xzf lame.tar.gz && cd lame &&
172 ./configure --prefix=$CONTRIB --disable-shared &&
173 make && make install &&
174 strip -S $CONTRIB/lib/libmp3lame.a
176 Wget $(SUBDIR)/lame.tar.gz : $(SUBDIR)/version_lame.txt ;
177 LibMp3Lame $(SUBDIR)/lib/libmp3lame.a : $(SUBDIR)/lame.tar.gz ;
182 Depends $(<) : $(>) ;
189 cd `dirname $(>)` && CONTRIB=`pwd` &&
190 rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
191 patch -p1 < ../patch-mpeg4ip.patch &&
192 ./bootstrap --disable-mp3lame --disable-faac --disable-x264 --disable-server --disable-player && make -C lib/mp4v2 libmp4v2.la &&
193 cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
194 cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
195 include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
196 strip -S $CONTRIB/lib/libmp4v2.a
203 cd `dirname $(>)` && CONTRIB=`pwd` &&
204 rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
205 patch -p1 < ../patch-mpeg4ip.patch &&
206 patch -p1 < ../patch_mpeg4ip_cygwin.patch && ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
207 cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
208 cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
209 include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
210 strip -S $CONTRIB/lib/libmp4v2.a
214 Wget $(SUBDIR)/mpeg4ip.tar.gz : $(SUBDIR)/version_mpeg4ip.txt ;
215 LibMp4v2 $(SUBDIR)/lib/libmp4v2.a : $(SUBDIR)/mpeg4ip.tar.gz ;
220 Depends $(<) : $(>) ;
225 cd `dirname $(>)` && CONTRIB=`pwd` &&
226 rm -rf mpeg2dec && tar xzf mpeg2dec.tar.gz && cd mpeg2dec &&
227 ./configure --prefix=$CONTRIB --disable-shared &&
228 make && make install &&
229 strip -S $CONTRIB/lib/libmpeg2.a
231 Wget $(SUBDIR)/mpeg2dec.tar.gz : $(SUBDIR)/version_mpeg2dec.txt ;
232 LibMpeg2 $(SUBDIR)/lib/libmpeg2.a : $(SUBDIR)/mpeg2dec.tar.gz ;
237 Depends $(<) : $(>) ;
242 cd `dirname $(>)` && CONTRIB=`pwd` &&
243 rm -rf libogg && tar xzf libogg.tar.gz && cd libogg &&
244 ./configure --prefix=$CONTRIB --disable-shared &&
245 make && make install &&
246 strip -S $CONTRIB/lib/libogg.a
248 Wget $(SUBDIR)/libogg.tar.gz : $(SUBDIR)/version_libogg.txt ;
249 LibOgg $(SUBDIR)/lib/libogg.a : $(SUBDIR)/libogg.tar.gz ;
254 Depends $(<) : $(>) ;
257 actions LibSampleRate
259 cd `dirname $(>)` && CONTRIB=`pwd` &&
260 rm -rf libsamplerate && tar xzf libsamplerate.tar.gz && cd libsamplerate &&
261 ./configure --prefix=$CONTRIB --disable-shared &&
262 make && make install &&
263 strip -S $CONTRIB/lib/libsamplerate.a
265 Wget $(SUBDIR)/libsamplerate.tar.gz : $(SUBDIR)/version_libsamplerate.txt ;
266 LibSampleRate $(SUBDIR)/lib/libsamplerate.a : $(SUBDIR)/libsamplerate.tar.gz ;
271 Depends $(<) : $(>) ;
276 cd `dirname $(>)` && CONTRIB=`pwd` &&
277 rm -rf libvorbis && tar xzf libvorbis.tar.gz && cd libvorbis &&
278 ./configure --prefix=$CONTRIB --with-ogg=$CONTRIB --disable-shared &&
279 make && make install &&
280 strip -S $CONTRIB/lib/libvorbis.a
282 Wget $(SUBDIR)/libvorbis.tar.gz : $(SUBDIR)/version_libvorbis.txt ;
283 LibVorbis $(SUBDIR)/lib/libvorbis.a : $(SUBDIR)/libvorbis.tar.gz ;
287 Depends $(<) : $(>) ;
294 LibVorbisEnc $(SUBDIR)/lib/libvorbisenc.a : $(SUBDIR)/lib/libvorbis.a ;
300 if $(OS) = MACOSX && $(OSPLAT) = X86
302 LIBX264_PATCH = " patch -p1 < ../patch-x264-macintel.patch && " ;
304 else if $(OS) = CYGWIN
306 LIBX264_PATCH = " patch -p1 < ../patch-x264-cygwin.patch && " ;
308 else if $(OS) = LINUX
310 LIBX264_PATCH = " patch -p1 < ../patch-x264-linux.patch && " ;
312 Depends $(<) : $(>) ;
317 cd `dirname $(>)` && CONTRIB=`pwd` &&
318 rm -rf x264 && tar xzf x264.tar.gz && cd x264 && $(LIBX264_PATCH)
319 ./configure --prefix=$CONTRIB --enable-pthread && make &&
321 strip -S $CONTRIB/lib/libx264.a
323 Wget $(SUBDIR)/x264.tar.gz : $(SUBDIR)/version_x264.txt ;
324 LibX264 $(SUBDIR)/lib/libx264.a : $(SUBDIR)/x264.tar.gz ;
329 LIBXVIDCORE_PATCH = "" ;
332 LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-macosx.patch && " ;
334 else if $(OS) = CYGWIN
336 LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-cygwin.patch && " ;
338 Depends $(<) : $(>) ;
343 cd `dirname $(>)` && CONTRIB=`pwd` &&
344 rm -rf xvidcore && tar xzf xvidcore.tar.gz &&
345 cd xvidcore && $(LIBXVIDCORE_PATCH)
346 cd build/generic/ && ./configure && make libxvidcore.a &&
347 cp ./=build/libxvidcore.a $CONTRIB/lib/ &&
348 cp ../../src/xvid.h $CONTRIB/include/ &&
349 strip -S $CONTRIB/lib/libxvidcore.a
351 Wget $(SUBDIR)/xvidcore.tar.gz : $(SUBDIR)/version_xvidcore.txt ;
352 LibXvidCore $(SUBDIR)/lib/libxvidcore.a : $(SUBDIR)/xvidcore.tar.gz ;
359 Depends $(<) : $(>) ;
364 cd `dirname $(>)` && CONTRIB=`pwd` &&
365 rm -rf zlib && tar xzf zlib.tar.gz &&
367 ./configure --prefix=$CONTRIB && make && make install &&
368 strip -S $CONTRIB/lib/libz.a
370 Wget $(SUBDIR)/zlib.tar.gz : $(SUBDIR)/version_zlib.txt ;
371 Zlib $(SUBDIR)/lib/libz.a : $(SUBDIR)/zlib.tar.gz ;
374 #libquicktime don't build on Cygwin! Do we really need it?
383 POST_LibQT = "cd plugins/faac && " ;
384 POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_faac.so -bundle .libs/faac.o .libs/lqt_faac.o $CONTRIB/lib/libfaac.a ../../src/.libs/libquicktime.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
385 POST_LibQT += "cp .libs/lqt_faac.so $CONTRIB/lib/libquicktime && " ;
386 POST_LibQT += "cd ../audiocodec && gcc -flat_namespace -undefined suppress -o .libs/lqt_audiocodec.so -bundle .libs/ima4.o .libs/pcm.o .libs/lqt_audiocodec.o ../../src/.libs/libquicktime.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
387 POST_LibQT += "cp .libs/lqt_audiocodec.so $CONTRIB/lib/libquicktime && " ;
388 POST_LibQT += "cd ../rtjpeg && " ;
389 POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_rtjpeg.so -bundle .libs/rtjpeg_codec.o .libs/lqt_rtjpeg.o .libs/RTjpeg.o ../../src/.libs/libquicktime.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
390 POST_LibQT += "cp .libs/lqt_rtjpeg.so $CONTRIB/lib/libquicktime && " ;
391 POST_LibQT += "cd ../videocodec && " ;
392 POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_videocodec.so -bundle .libs/raw.o .libs/v210.o .libs/v308.o .libs/v408.o .libs/v410.o .libs/yuv2.o .libs/yuv4.o .libs/yv12.o .libs/lqt_videocodec.o ../../src/.libs/libquicktime.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
393 POST_LibQT += "cp .libs/lqt_videocodec.so $CONTRIB/lib/libquicktime && " ;
394 POST_LibQT += "cd ../lame && " ;
395 POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_lame.so -bundle .libs/lame_codec.o .libs/lqt_lame.o ../../src/.libs/libquicktime.a -all_load $CONTRIB/lib/libmp3lame.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
396 POST_LibQT += "cp .libs/lqt_lame.so $CONTRIB/lib/libquicktime && cd ../x264 && " ;
397 POST_LibQT += "gcc -flat_namespace -undefined suppress -read_only_relocs suppress -o .libs/lqt_x264.so -bundle .libs/x264.o .libs/lqt_x264.o ../../src/.libs/libquicktime.a $CONTRIB/lib/libx264.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
398 POST_LibQT += "cp .libs/lqt_x264.so $CONTRIB/lib/libquicktime && cd ../ffmpeg && " ;
399 POST_LibQT += "gcc -flat_namespace -undefined suppress -read_only_relocs suppress -o .libs/lqt_ffmpeg.so -bundle .libs/lqt_ffmpeg.o .libs/audio.o .libs/video.o .libs/params.o ../../src/.libs/libquicktime.a $CONTRIB/lib/libavcodec.a $CONTRIB/lib/libavutil.a $CONTRIB/lib/libavformat.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
400 POST_LibQT += "cp .libs/lqt_ffmpeg.so $CONTRIB/lib/libquicktime && cd ../.. && " ;
404 # Rebuild plugins using static libraries to reduice dependencies at runtime.
405 POST_LibQT = "cd plugins/faac && " ;
406 POST_LibQT += "gcc -shared .libs/faac.o .libs/lqt_faac.o $CONTRIB/libquicktime/src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_faac.so -o .libs/lqt_faac.so && " ;
407 POST_LibQT += "cp .libs/lqt_faac.so $CONTRIB/lib/libquicktime && " ;
408 POST_LibQT += "cd ../audiocodec && gcc -shared .libs/ima4.o .libs/pcm.o .libs/lqt_audiocodec.o ../../src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB//libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB//lib -L$CONTRIB//lib -L$CONTRIB//libquicktime/src/.libs -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_audiocodec.so -o .libs/lqt_audiocodec.so && " ;
409 POST_LibQT += "cp .libs/lqt_audiocodec.so $CONTRIB/lib/libquicktime && " ;
410 POST_LibQT += "cd ../rtjpeg && " ;
411 POST_LibQT += "gcc -shared .libs/rtjpeg_codec.o .libs/lqt_rtjpeg.o .libs/RTjpeg.o ../../src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_rtjpeg.so -o .libs/lqt_rtjpeg.so && " ;
412 POST_LibQT += "cp .libs/lqt_rtjpeg.so $CONTRIB/lib/libquicktime && " ;
413 POST_LibQT += "cd ../videocodec && " ;
414 POST_LibQT += "gcc -shared .libs/raw.o .libs/v210.o .libs/v308.o .libs/v408.o .libs/v410.o .libs/yuv2.o .libs/yuv4.o .libs/yv12.o .libs/lqt_videocodec.o ../../src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_videocodec.so -o .libs/lqt_videocodec.so && " ;
415 POST_LibQT += "cp .libs/lqt_videocodec.so $CONTRIB/lib/libquicktime && " ;
416 POST_LibQT += "cd ../lame && " ;
417 POST_LibQT += "gcc -shared .libs/lame_codec.o .libs/lqt_lame.o $CONTRIB/libquicktime/src/.libs/libquicktime.a -Wl,--whole-archive $CONTRIB/lib/libmp3lame.a -Wl,--no-whole-archive -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L/home/pri/Desktop/0.8.0b2_5.1_383/contrib/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_lame.so -o .libs/lqt_lame.so && " ;
418 POST_LibQT += "cp .libs/lqt_lame.so $CONTRIB/lib/libquicktime && cd ../x264 && " ;
419 POST_LibQT += "gcc -shared .libs/x264.o .libs/lqt_x264.o $CONTRIB/libquicktime/src/.libs/libquicktime.a $CONTRIB/lib/libx264.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_x264.so -o .libs/lqt_x264.so && " ;
420 POST_LibQT += "cp .libs/lqt_x264.so $CONTRIB/lib/libquicktime && cd ../ffmpeg && " ;
421 POST_LibQT += "gcc -shared .libs/lqt_ffmpeg.o .libs/audio.o .libs/video.o .libs/params.o $CONTRIB/lib/libavcodec.a $CONTRIB/lib/libavutil.a $CONTRIB/lib/libavformat.a $CONTRIB/libquicktime/src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_ffmpeg.so -o .libs/lqt_ffmpeg.so && " ;
422 POST_LibQT += "cp .libs/lqt_ffmpeg.so $CONTRIB/lib/libquicktime && cd ../.. && " ;
425 Depends $(<) : $(>) ;
430 cd `dirname $(>)` && CONTRIB=`pwd` &&
431 rm -rf libquicktime && tar xzf libquicktime.tar.gz &&
432 export LDFLAGS="$LDFLAGS -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -I$CONTRIB/include" && export CPPFLAGS="$CPPFLAGS -I$CONTRIB/include"
433 cd libquicktime && patch -p1 < ../patch-libquicktime.patch &&
434 ./configure --prefix=$CONTRIB --enable-shared --enable-static --enable-gpl --with-faac=$CONTRIB --with-x264=$CONTRIB --with-avcodec=$CONTRIB && make && make install && $(POST_LibQT)
435 strip -S $CONTRIB/lib/libquicktime.a && touch $CONTRIB/.contrib
437 Wget $(SUBDIR)/libquicktime.tar.gz : $(SUBDIR)/version_qt.txt ;
438 LibQT $(SUBDIR)/lib/libquicktime.a : $(SUBDIR)/libquicktime.tar.gz ;