OSDN Git Service

Merge the 0.8.0_mpeg4ip branch into the trunk
[handbrake-jp/handbrake-jp-git.git] / contrib / Jamfile
index 46e14c2..94016f0 100644 (file)
@@ -4,13 +4,18 @@ SubDir TOP contrib ;
 # is installed for all other systems
 if $(OS) = MACOSX
 {
-    WGET = curl -o ;
+    WGET = curl -L -o ;
 }
 else
 {
     WGET = wget -O ;
 }
 
+if $(OS) = UNKNOWN
+{
+    OS = CYGWIN ;
+}
+
 # Wget rule: downloads $(<) from the link in $(>)
 rule Wget
 {
@@ -42,16 +47,27 @@ LibA52 $(SUBDIR)/lib/liba52.a  : $(SUBDIR)/a52dec.tar.gz ;
 # libavcodec
 rule LibAvCodec
 {
+    FFMPEG_PATCH = "patch -p1 < ../patch-ffmpeg.patch" ;
+    if $(OS) = MACOSX && $(OSPLAT) = X86
+    {
+       FFMPEG_OPTIONS  = --enable-memalign-hack ;
+     # This patch simply don't apply correctly so don't try to do it
+     #  FFMPEG_PATCH   += " && patch -p1 < ../patch-ffmpeg-macintel.patch" ;
+    }
+    else if $(OS) = CYGWIN
+    {
+        FFMPEG_PATCH += " && patch -p1 < ../patch-ffmpeg-cygwin.patch " ;
+    }
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
 }
 actions LibAvCodec
 {
     cd `dirname $(>)` && CONTRIB=`pwd` &&
-    rm -rf ffmpeg && tar xzf ffmpeg.tar.gz && cd ffmpeg &&
-    ./configure --prefix=$CONTRIB --enable-gpl &&
-    make -C libavcodec && make -C libavutil &&
-    make -C libavcodec installlib && make -C libavutil installlib &&
+    rm -rf ffmpeg && tar xzf ffmpeg.tar.gz &&
+    cd ffmpeg && $(FFMPEG_PATCH) &&
+    ./configure --prefix=$CONTRIB $(FFMPEG_OPTIONS) --enable-gpl --disable-audio-beos &&
+    make lib && make install-libs install-headers &&
     strip -S $CONTRIB/lib/libavcodec.a
 }
 Wget       $(SUBDIR)/ffmpeg.tar.gz    : $(SUBDIR)/version_ffmpeg.txt ;
@@ -67,37 +83,60 @@ actions LibAvUtil
     strip -S $(<)
 }
 LibAvUtil $(SUBDIR)/lib/libavutil.a : $(SUBDIR)/lib/libavcodec.a ;
+LibAvUtil $(SUBDIR)/lib/libavformat.a : $(SUBDIR)/lib/libavcodec.a ;
 
-# libdvdcss
-# We need libdvdcss.so for libdvdread's configure to work...
-rule LibDvdCss
+# CSS doesn't work on Cygwin/Windows as of now, so don't use it.
+if $(OS) != CYGWIN
 {
-    Depends $(<) : $(>) ;
-    Depends lib  : $(<) ;
-}
-actions LibDvdCss
-{
-    cd `dirname $(>)` && CONTRIB=`pwd` &&
-    rm -rf libdvdcss && tar xzf libdvdcss.tar.gz && cd libdvdcss &&
-    ./configure --prefix=$CONTRIB && make && make install &&
-    strip -S $CONTRIB/lib/libdvdcss.a
+    # libdvdcss
+    # We need libdvdcss.so for libdvdread's configure to work...
+    rule LibDvdCss
+    {
+        Depends $(<) : $(>) ;
+        Depends lib  : $(<) ;
+    }
+    actions LibDvdCss
+    {
+        cd `dirname $(>)` && CONTRIB=`pwd` &&
+            rm -rf libdvdcss && tar xzf libdvdcss.tar.gz && cd libdvdcss &&
+            ./configure --prefix=$CONTRIB && make && make install &&
+            strip -S $CONTRIB/lib/libdvdcss.a
+    }
+    Wget      $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
+    LibDvdCss $(SUBDIR)/lib/libdvdcss.a  : $(SUBDIR)/libdvdcss.tar.gz ;
 }
-Wget      $(SUBDIR)/libdvdcss.tar.gz : $(SUBDIR)/version_libdvdcss.txt ;
-LibDvdCss $(SUBDIR)/lib/libdvdcss.a  : $(SUBDIR)/libdvdcss.tar.gz ;
 
 # libdvdread
 rule LibDvdRead
 {
+    LIBDVDREAD_PATCH = "patch -p1 < ../patch-libdvdread.patch" ;
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
 }
-actions LibDvdRead
+if $(OS) != CYGWIN
 {
-    cd `dirname $(>)` && CONTRIB=`pwd` &&
-    rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
-    ./configure --prefix=$CONTRIB --disable-shared --with-libdvdcss=$CONTRIB &&
-    make && make install &&
-    strip -S $CONTRIB/lib/libdvdread.a
+    actions LibDvdRead
+    {
+        cd `dirname $(>)` && CONTRIB=`pwd` &&
+            rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
+            $(LIBDVDREAD_PATCH) &&
+            ./configure --prefix=$CONTRIB --disable-shared --with-libdvdcss=$CONTRIB &&
+            make && make install &&
+            strip -S $CONTRIB/lib/libdvdread.a
+    }
+}
+else {
+    # Cygwin/Windows doesn't use CSS as of now, so don't include it on the
+    # configure line.
+    actions LibDvdRead
+    {
+        cd `dirname $(>)` && CONTRIB=`pwd` &&
+            rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
+            $(LIBDVDREAD_PATCH) &&
+            ./configure --prefix=$CONTRIB --disable-shared &&
+            make && make install &&
+            strip -S $CONTRIB/lib/libdvdread.a
+    }
 }
 Wget       $(SUBDIR)/libdvdread.tar.gz : $(SUBDIR)/version_libdvdread.txt ;
 LibDvdRead $(SUBDIR)/lib/libdvdread.a  : $(SUBDIR)/libdvdread.tar.gz ;
@@ -142,16 +181,33 @@ rule LibMp4v2
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
 }
-actions LibMp4v2
+if $(OS) != CYGWIN
 {
-    cd `dirname $(>)` && CONTRIB=`pwd` &&
-    rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
-    ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
-    cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
-    cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
-      include/mpeg4ip_win32.h lib/mp4v2/mp4.h $CONTRIB/include &&
-    strip -S $CONTRIB/lib/libmp4v2.a
+       actions LibMp4v2
+       {
+       cd `dirname $(>)` && CONTRIB=`pwd` &&
+       rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
+       ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
+       cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
+       cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
+       include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
+       strip -S $CONTRIB/lib/libmp4v2.a
+       }
+}
+else
+{
+       actions LibMp4v2
+       {
+       cd `dirname $(>)` && CONTRIB=`pwd` &&
+       rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
+       patch -p1 < ../patch_mpeg4ip_cygwin.patch && ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
+       cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
+       cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
+       include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
+       strip -S $CONTRIB/lib/libmp4v2.a
+       }
 }
+
 Wget     $(SUBDIR)/mpeg4ip.tar.gz : $(SUBDIR)/version_mpeg4ip.txt ;
 LibMp4v2 $(SUBDIR)/lib/libmp4v2.a : $(SUBDIR)/mpeg4ip.tar.gz ;
 
@@ -237,13 +293,22 @@ LibVorbisEnc $(SUBDIR)/lib/libvorbisenc.a : $(SUBDIR)/lib/libvorbis.a ;
 # libx264
 rule LibX264
 {
+    LIBX264_PATCH = "" ;
+    if $(OS) = MACOSX && $(OSPLAT) = X86
+    {
+        LIBX264_PATCH = " patch -p1 < ../patch-x264-macintel.patch && " ;
+    }
+    else if $(OS) = CYGWIN
+    {
+        LIBX264_PATCH = " patch -p1 < ../patch-x264-cygwin.patch && " ;
+    }
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
 }
 actions LibX264
 {
     cd `dirname $(>)` && CONTRIB=`pwd` &&
-    rm -rf x264 && tar xzf x264.tar.gz && cd x264 &&
+    rm -rf x264 && tar xzf x264.tar.gz && cd x264 && $(LIBX264_PATCH)
     ./configure --prefix=$CONTRIB --enable-pthread && make &&
     make install &&
     strip -S $CONTRIB/lib/libx264.a
@@ -254,9 +319,14 @@ LibX264 $(SUBDIR)/lib/libx264.a : $(SUBDIR)/x264.tar.gz ;
 # libxvidcore
 rule LibXvidCore
 {
-    if $(OS) = MACOSX && $(OSPLAT) = X86
+    LIBXVIDCORE_PATCH = "" ;
+    if $(OS) = MACOSX
+    {
+        LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-macosx.patch && " ;
+    }
+    else if $(OS) = CYGWIN
     {
-       XVID_OPTIONS = --disable-assembly ;
+        LIBXVIDCORE_PATCH = " patch -p1 < ../patch-xvidcore-cygwin.patch && " ;
     }
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
@@ -265,8 +335,8 @@ actions LibXvidCore
 {
     cd `dirname $(>)` && CONTRIB=`pwd` &&
     rm -rf xvidcore && tar xzf xvidcore.tar.gz &&
-    cd xvidcore/build/generic/ && ./configure $(XVID_OPTIONS) &&
-    make libxvidcore.a &&
+    cd xvidcore && $(LIBXVIDCORE_PATCH)
+    cd build/generic/ && ./configure && make libxvidcore.a &&
     cp ./=build/libxvidcore.a $CONTRIB/lib/ &&
     cp ../../src/xvid.h $CONTRIB/include/ &&
     strip -S $CONTRIB/lib/libxvidcore.a