]> granicus.if.org Git - handbrake/commitdiff
Cleaner libquicktime build, plugins are build statically.
authorprigaux <pri@nopapers.org>
Wed, 21 Feb 2007 22:27:29 +0000 (22:27 +0000)
committerprigaux <pri@nopapers.org>
Wed, 21 Feb 2007 22:27:29 +0000 (22:27 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/0.8.0_beta2_5.1@387 b64f7644-9d1e-0410-96f1-a4d463321fa5

contrib/Jamfile
contrib/patch-libquicktime.patch

index 1665c6a3f5d0b94ab2b22d78810529b1f7d796e2..4caf832abb4e5458fdbcf49531e1cbbf8447b54d 100644 (file)
@@ -374,6 +374,51 @@ Zlib $(SUBDIR)/lib/libz.a : $(SUBDIR)/zlib.tar.gz ;
 # libquicktime
 rule LibQT
 {
+    
+    if $(OS) = MACOSX
+    {
+    POST_LibQT = "cd plugins/faac && " ; 
+    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 && " ; 
+    POST_LibQT += "cp .libs/lqt_faac.so $CONTRIB/lib/libquicktime && " ;
+    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 && " ; 
+    POST_LibQT += "cp .libs/lqt_audiocodec.so $CONTRIB/lib/libquicktime && " ; 
+    POST_LibQT += "cd ../rtjpeg && " ;
+    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  && " ;
+    POST_LibQT += "cp .libs/lqt_rtjpeg.so $CONTRIB/lib/libquicktime && " ;
+    POST_LibQT += "cd ../videocodec && " ;
+    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  && " ;
+    POST_LibQT += "cp  .libs/lqt_videocodec.so $CONTRIB/lib/libquicktime && " ; 
+    POST_LibQT += "cd ../lame && " ;
+    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 && " ;
+    POST_LibQT += "cp .libs/lqt_lame.so $CONTRIB/lib/libquicktime && cd ../x264 && " ;
+    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 && " ;
+    POST_LibQT += "cp .libs/lqt_x264.so $CONTRIB/lib/libquicktime && cd ../ffmpeg && " ; 
+    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  && " ;
+    POST_LibQT += "cp .libs/lqt_ffmpeg.so $CONTRIB/lib/libquicktime && cd ../.. && " ;
+    }
+    else
+    {
+    # Rebuild plugins using static libraries to reduice dependencies at runtime.
+    POST_LibQT = "cd plugins/faac && " ; 
+    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 && " ; 
+    POST_LibQT += "cp .libs/lqt_faac.so $CONTRIB/lib/libquicktime && " ;
+    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 && " ; 
+    POST_LibQT += "cp .libs/lqt_audiocodec.so $CONTRIB/lib/libquicktime && " ; 
+    POST_LibQT += "cd ../rtjpeg && " ;
+    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 && " ;
+    POST_LibQT += "cp .libs/lqt_rtjpeg.so $CONTRIB/lib/libquicktime && " ;
+    POST_LibQT += "cd ../videocodec && " ;
+    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 && " ;
+    POST_LibQT += "cp  .libs/lqt_videocodec.so $CONTRIB/lib/libquicktime && " ; 
+    POST_LibQT += "cd ../lame && " ;
+    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 && " ;
+    POST_LibQT += "cp .libs/lqt_lame.so $CONTRIB/lib/libquicktime && cd ../x264 && " ;
+    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 && " ;
+    POST_LibQT += "cp .libs/lqt_x264.so $CONTRIB/lib/libquicktime && cd ../ffmpeg && " ; 
+    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 && " ;
+    POST_LibQT += "cp .libs/lqt_ffmpeg.so $CONTRIB/lib/libquicktime && cd ../.. && " ;
+    }
+
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
 }
@@ -381,9 +426,9 @@ actions LibQT
 {
     cd `dirname $(>)` && CONTRIB=`pwd` &&
     rm -rf libquicktime && tar xzf libquicktime.tar.gz &&
-    export LDFLAGS="$LDFLAGS -L$CONTRIB/lib -I$CONTRIB/include" && export CPPFLAGS="$CPPFLAGS -I$CONTRIB/include"
+    export LDFLAGS="$LDFLAGS -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -I$CONTRIB/include" && export CPPFLAGS="$CPPFLAGS -I$CONTRIB/include"
     cd libquicktime &&  patch -p1 < ../patch-libquicktime.patch &&
-     ./configure --prefix=$CONTRIB --enable-static --enable-shared --enable-gpl --with-faac=$CONTRIB --with-x264=$CONTRIB --with-avcodec=$CONTRIB && make && make install &&
+     ./configure --prefix=$CONTRIB --enable-shared --enable-static --enable-gpl --with-faac=$CONTRIB --with-x264=$CONTRIB --with-avcodec=$CONTRIB && make && make install && $(POST_LibQT) 
     strip -S $CONTRIB/lib/libquicktime.a && touch $CONTRIB/.contrib
 }
 Wget        $(SUBDIR)/libquicktime.tar.gz   : $(SUBDIR)/version_qt.txt ;
index acc18d4b6f9aa01ba09bd773dd1a94bb8d1818fd..6e11f63d6231d2d1931ffe85deba113ccfb226a4 100644 (file)
@@ -1,7 +1,42 @@
 diff -Naur libquicktime/configure libquicktime_patched/configure
 --- libquicktime/configure     2006-08-03 01:02:25.000000000 +0200
-+++ libquicktime_patched/configure     2007-02-20 23:35:12.000000000 +0100
-@@ -26261,7 +26261,7 @@
++++ libquicktime_patched/configure     2007-02-21 16:16:22.000000000 +0100
+@@ -25564,7 +25564,7 @@
+-have_libavcodec=false
++have_libavcodec="true"
+ AVCODEC_BUILD="3277056"
+@@ -25656,6 +25656,8 @@
+ fi
+ rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
++have_libavcodec="true"
++avcodec_ok="true"
+ CFLAGS="$CFLAGS_save"
+ LIBS="$LIBS_save"
+@@ -26048,7 +26050,7 @@
+-have_faac="false"
++have_faac="true"
+ FAAC_REQUIRED="1.24"
+@@ -26134,6 +26136,7 @@
++have_faac="true"
+ if test x$have_faac = xtrue; then
+   HAVE_FAAC_TRUE=
+@@ -26261,7 +26264,7 @@
  
  
  
@@ -10,7 +45,7 @@ diff -Naur libquicktime/configure libquicktime_patched/configure
  
  if test $have_gpl = "true"; then
  X264_REQUIRED="0.48"
-@@ -26321,6 +26321,7 @@
+@@ -26321,6 +26324,7 @@
  
  fi
  
@@ -20,7 +55,7 @@ diff -Naur libquicktime/configure libquicktime_patched/configure
    HAVE_X264_TRUE=
 diff -Naur libquicktime/plugins/x264/x264.c libquicktime_patched/plugins/x264/x264.c
 --- libquicktime/plugins/x264/x264.c   2006-07-25 13:35:15.000000000 +0200
-+++ libquicktime_patched/plugins/x264/x264.c   2007-02-20 23:35:33.000000000 +0100
++++ libquicktime_patched/plugins/x264/x264.c   2007-02-21 16:14:11.000000000 +0100
 @@ -493,7 +493,7 @@
        {
        /* Force ABR */