]> git.sesse.net Git - ffmpeg/blobdiff - configure
make some tables static
[ffmpeg] / configure
index 47a182a763b15613c8af0de63a83dcf9c92c8347..8543db9d4bbe69d085449cee8b5020b355d49539 100755 (executable)
--- a/configure
+++ b/configure
@@ -31,6 +31,7 @@ show_help(){
   echo "  --incdir=DIR             install includes in DIR [PREFIX/include/ffmpeg]"
   echo "  --mandir=DIR             install man page in DIR [PREFIX/man]"
   echo "  --enable-mp3lame         enable MP3 encoding via libmp3lame [default=no]"
+  echo "  --enable-libnut          enable NUT support via libnut [default=no]"
   echo "  --enable-libogg          enable Ogg support via libogg [default=no]"
   echo "  --enable-vorbis          enable Vorbis support via libvorbis [default=no]"
   echo "  --enable-faad            enable FAAD support via libfaad [default=no]"
@@ -72,9 +73,9 @@ show_help(){
   echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
   echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
   echo "  --build-suffix=SUFFIX    suffix for application specific build []"
-  echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
-  echo "  --tune=CPU               tune code for a particular CPU"
-  echo "                           (may fail or perform badly on other CPUs)"
+  echo "  --arch=ARCH              select architecture  [$arch]"
+  echo "  --cpu=CPU                selects the minimum cpu required (affects
+                                   instruction selection, may crash on older CPUs)"
   echo "  --powerpc-perf-enable    enable performance report on PPC"
   echo "                           (requires enabling PMC)"
   echo "  --disable-mmx            disable MMX usage"
@@ -95,9 +96,11 @@ show_help(){
   echo "  --enable-gprof           enable profiling with gprof [$gprof]"
   echo "  --disable-debug          disable debugging symbols"
   echo "  --disable-opts           disable compiler optimizations"
+  echo "  --enable-extra-warnings  enable more compiler warnings"
   echo "  --disable-mpegaudio-hp   faster (but less accurate)"
   echo "                           MPEG audio decoding [default=no]"
   echo "  --disable-protocols      disable I/O protocols support [default=no]"
+  echo "  --disable-ffmpeg         disable ffmpeg build"
   echo "  --disable-ffserver       disable ffserver build"
   echo "  --disable-ffplay         disable ffplay build"
   echo "  --enable-small           optimize for size instead of speed"
@@ -342,66 +345,69 @@ ar="ar"
 ranlib="ranlib"
 make="make"
 strip="strip"
-cpu=`uname -m`
-tune="generic"
+arch=`uname -m`
+cpu="generic"
 powerpc_perf="no"
 mmx="default"
+cmov="no"
+cmov_is_fast="no"
 armv5te="default"
 iwmmxt="default"
 altivec="default"
+dcbzl="no"
 mmi="default"
-case "$cpu" in
+case "$arch" in
   i386|i486|i586|i686|i86pc|BePC)
-    cpu="x86"
+    arch="x86_32"
   ;;
   x86_64|amd64)
-    cpu="x86"
+    arch="x86_32"
     canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
     if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
       if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
-        cpu="x86_64"
+        arch="x86_64"
       fi
     fi
   ;;
-  # armv4l is a subset of armv5tel
-  arm|armv4l|armv5tel)
-    cpu="armv4l"
+  # armv4l is a subset of armv[567]*l
+  arm|armv[4567]*l)
+    arch="armv4l"
   ;;
   alpha)
-    cpu="alpha"
+    arch="alpha"
   ;;
   "Power Macintosh"|ppc|ppc64|powerpc)
-    cpu="powerpc"
+    arch="powerpc"
   ;;
   mips|mipsel|IP*)
-    cpu="mips"
+    arch="mips"
   ;;
   sun4u|sparc64)
-    cpu="sparc64"
+    arch="sparc64"
   ;;
   sparc)
-    cpu="sparc"
+    arch="sparc"
   ;;
   sh4)
-    cpu="sh4"
+    arch="sh4"
   ;;
   parisc|parisc64)
-    cpu="parisc"
+    arch="parisc"
   ;;
   s390|s390x)
-    cpu="s390"
+    arch="s390"
   ;;
   m68k)
-    cpu="m68k"
+    arch="m68k"
   ;;
   ia64)
-    cpu="ia64"
+    arch="ia64"
   ;;
   bfin)
-    cpu="bfin"
+    arch="bfin"
   ;;
   *)
-    cpu="unknown"
+    arch="unknown"
   ;;
 esac
 gprof="no"
@@ -417,6 +423,7 @@ ipv6="yes"
 zlib="yes"
 libgsm="no"
 mp3lame="no"
+libnut="no"
 libogg="no"
 vorbis="no"
 faad="no"
@@ -435,6 +442,7 @@ lstatic="yes"
 lshared="no"
 optimize="yes"
 debug="yes"
+extrawarnings="no"
 dostrip="yes"
 installstrip="-s"
 extralibs="-lm"
@@ -448,14 +456,16 @@ dlfcn="no"
 dlopen="no"
 mpegaudio_hp="yes"
 SHFLAGS='-shared -Wl,-soname,$@'
-VHOOKSHFLAGS="$SHFLAGS"
+VHOOKSHFLAGS='$(SHFLAGS)'
 netserver="no"
 need_inet_aton="no"
 protocols="yes"
+ffmpeg="yes"
 ffserver="yes"
 ffplay="yes"
 LIBOBJFLAGS=""
 FFLDFLAGS=-Wl,--warn-common
+LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
 FFSERVERLDFLAGS=-Wl,-E
 LDCONFIG="ldconfig"
 LIBPREF="lib"
@@ -604,7 +614,7 @@ v4l="no"
 v4l2="no"
 audio_oss="yes"
 dv1394="no"
-VHOOKSHFLAGS="-shared -L../libavformat -L../libavcodec -L../libavutil"
+VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
 VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
 extralibs=""
 EXESUF=".exe"
@@ -615,6 +625,7 @@ SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
 SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
 ;;
 Linux)
+LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
 ;;
 IRIX*)
 targetos=IRIX
@@ -655,13 +666,15 @@ targetos="${targetos}-UNKNOWN"
 esac
 
 # find source path
-source_path="`dirname $0`"
+source_path="`dirname \"$0\"`"
 source_path_used="yes"
 if test -z "$source_path" -o "$source_path" = "." ; then
-    source_path=`pwd`
+    source_path="`pwd`"
     source_path_used="no"
 else
     source_path="`cd \"$source_path\"; pwd`"
+    echo "$source_path" | grep -q '[[:blank:]]' &&
+      die "Out of tree builds are impossible with whitespace in source path."
 fi
 
 if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
@@ -673,11 +686,11 @@ for opt do
   FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
 done
 
-ENCODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_encoder)' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
-DECODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_decoder)' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
-PARSER_LIST=`grep 'av_register_codec_parser(&[a-z]' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
-MUXER_LIST=`grep 'av_register_output_format(&[a-z]' $source_path/libavformat/allformats.c  | sed 's/.*&\(.*\)).*/\1/'`
-DEMUXER_LIST=`grep 'av_register_input_format(&[a-z]' $source_path/libavformat/allformats.c  | sed 's/.*&\(.*\)).*/\1/'`
+ENCODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_encoder)' "$source_path/libavcodec/allcodecs.c"  | sed 's/.*&\(.*\)).*/\1/'`
+DECODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_decoder)' "$source_path/libavcodec/allcodecs.c"  | sed 's/.*&\(.*\)).*/\1/'`
+PARSER_LIST=`grep 'av_register_codec_parser(&[a-z]' "$source_path/libavcodec/allcodecs.c"  | sed 's/.*&\(.*\)).*/\1/'`
+MUXER_LIST=`grep 'av_register_output_format(&[a-z]' "$source_path/libavformat/allformats.c"  | sed 's/.*&\(.*\)).*/\1/'`
+DEMUXER_LIST=`grep 'av_register_input_format(&[a-z]' "$source_path/libavformat/allformats.c"  | sed 's/.*&\(.*\)).*/\1/'`
 
 for opt do
   optval="${opt#*=}"
@@ -708,15 +721,15 @@ for opt do
   ;;
   --extra-cflags=*) add_cflags "$optval"
   ;;
-  --extra-ldflags=*) EXTRALDFLAGS="$optval"
+  --extra-ldflags=*) add_ldflags "$optval"
   ;;
-  --extra-libs=*) extralibs="$optval"
+  --extra-libs=*) add_extralibs "$optval"
   ;;
   --build-suffix=*) BUILDSUF="$optval"
   ;;
-  --cpu=*) cpu="$optval"
+  --arch=*) arch="$optval"
   ;;
-  --tune=*) tune="$optval"
+  --cpu=*) cpu="$optval"
   ;;
   --powerpc-perf-enable) powerpc_perf="yes"
   ;;
@@ -760,6 +773,8 @@ for opt do
   ;;
   --enable-mp3lame) mp3lame="yes"
   ;;
+  --enable-libnut) libnut="yes"
+  ;;
   --enable-libogg) libogg="yes"
     pkg_requires="$pkg_requires ogg >= 1.1"
   ;;
@@ -801,10 +816,14 @@ for opt do
   ;;
   --disable-opts) optimize="no"
   ;;
+  --enable-extra-warnings) extrawarnings="yes"
+  ;;
   --disable-mpegaudio-hp) mpegaudio_hp="no"
   ;;
   --disable-protocols) protocols="no"; network="no"; ffserver="no"
   ;;
+  --disable-ffmpeg) ffmpeg="no"
+  ;;
   --disable-ffserver) ffserver="no"
   ;;
   --disable-ffplay) ffplay="no"
@@ -912,8 +931,8 @@ EOF
     shlibdir='${PREFIX}'
 fi
 
-# Combine FFLDFLAGS, EXTRALDFLAGS and the LDFLAGS environment variable.
-LDFLAGS="$FFLDFLAGS $EXTRALDFLAGS $LDFLAGS"
+# Combine FFLDFLAGS and the LDFLAGS environment variable.
+LDFLAGS="$FFLDFLAGS $LDFLAGS"
 
 test -n "$cross_prefix" && cross_compile=yes
 cc="${cross_prefix}${cc}"
@@ -997,33 +1016,13 @@ fi
 
 # compute MMX state
 if test $mmx = "default"; then
-    if test $cpu = "x86" -o $cpu = "x86_64"; then
+    if test $arch = "x86_32" -o $arch = "x86_64"; then
         mmx="yes"
     else
         mmx="no"
     fi
 fi
 
-# check armv5te instructions support
-if test $armv5te = "default" -a $cpu = "armv4l"; then
-    armv5te=no
-    check_cc <<EOF && armv5te=yes
-        int main(void) {
-        __asm__ __volatile__ ("qadd r0, r0, r0");
-        }
-EOF
-fi
-
-# check iwmmxt support
-if test $iwmmxt = "default" -a $cpu = "armv4l"; then
-    iwmmxt=no
-    check_cc <<EOF && iwmmxt=yes
-        int main(void) {
-        __asm__ __volatile__ ("wunpckelub wr6, wr4");
-        }
-EOF
-fi
-
 #Darwin CC versions
 needmdynamicnopic="no"
 if test $targetos = Darwin; then
@@ -1049,14 +1048,15 @@ if test $targetos = Darwin; then
                 ;;
         esac
     fi
-    if test $optimize != "no"; then
-        add_cflags "-fomit-frame-pointer"
-    fi
+fi
+
+if test $optimize != "no"; then
+    add_cflags "-fomit-frame-pointer"
 fi
 
 # Can only do AltiVec on PowerPC
 if test $altivec = "default"; then
-    if test $cpu = "powerpc"; then
+    if test $arch = "powerpc"; then
         altivec="yes"
     else
         altivec="no"
@@ -1066,8 +1066,8 @@ fi
 # Add processor-specific flags
 TUNECPU="generic"
 POWERPCMODE="32bits"
-if test $tune != "generic"; then
-    case $tune in
+if test $cpu != "generic"; then
+    case $cpu in
         601|ppc601|PowerPC601)
             add_cflags "-mcpu=601"
             if test $altivec = "yes"; then
@@ -1090,46 +1090,75 @@ if test $tune != "generic"; then
             TUNECPU=ppc604
         ;;
         G3|g3|75*|ppc75*|PowerPC75*)
-            add_cflags "-mcpu=750 -mtune=750 -mpowerpc-gfxopt"
+            add_cflags "-mcpu=750 -mpowerpc-gfxopt"
             if test $altivec = "yes"; then
                 echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
             fi
             TUNECPU=ppc750
         ;;
         G4|g4|745*|ppc745*|PowerPC745*)
-            add_cflags "-mcpu=7450 -mtune=7450 -mpowerpc-gfxopt"
+            add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
             if test $altivec = "no"; then
                 echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
             fi
             TUNECPU=ppc7450
         ;;
         74*|ppc74*|PowerPC74*)
-            add_cflags "-mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
+            add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
             if test $altivec = "no"; then
                 echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
             fi
             TUNECPU=ppc7400
         ;;
         G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
-            add_cflags "-mcpu=970 -mtune=970 -mpowerpc-gfxopt -mpowerpc64"
+            add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
             if test $altivec = "no"; then
                 echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
             fi
             TUNECPU=ppc970
             POWERPCMODE="64bits"
         ;;
-        i[3456]86|pentium|pentiumpro|pentium-mmx|pentium[234]|prescott|k6|k6-[23]|athlon|athlon-tbird|athlon-4|athlon-[mx]p|winchip-c6|winchip2|c3|nocona|athlon64|k8|opteron|athlon-fx)
-            add_cflags "-march=$tune"
+        # targets that do NOT support conditional mov (cmov)
+        i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
+            add_cflags "-march=$cpu"
+            cmov="no"
+        ;;
+        # targets that do support conditional mov (cmov)
+        i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx)
+            add_cflags "-march=$cpu"
+            cmov="yes"
+            cmov_is_fast="yes"
+        ;;
+        # targets that do support conditional mov but on which it's slow
+        pentium4|prescott|nocona)
+            add_cflags "-march=$cpu"
+            cmov="yes"
+            cmov_is_fast="no"
         ;;
         sparc64)
-            add_cflags "-mcpu=v9 -mtune=v9"
+            add_cflags "-mcpu=v9"
         ;;
         *)
-        echo "WARNING: Unknown CPU \"$tune\", ignored."
+        echo "WARNING: Unknown CPU \"$cpu\", ignored."
         ;;
     esac
 fi
 
+# make sure we can execute files in $TMPDIR
+cat >$TMPE 2>>$logfile <<EOF
+#! /bin/sh
+EOF
+chmod +x $TMPE >>$logfile 2>&1
+if ! $TMPE >>$logfile 2>&1; then
+    cat <<EOF
+Unable to create and execute files in $TMPDIR1.  Set the TMPDIR environment
+variable to another directory and make sure that $TMPDIR1 is not mounted
+noexec.
+EOF
+    die "Sanity test failed."
+fi
+rm $TMPE
+
 # compiler sanity check
 check_exec <<EOF
 int main(){
@@ -1140,14 +1169,28 @@ if test "$?" != 0; then
     echo "$cc is unable to create an executable file."
     if test -z "$cross_prefix" -a "$cross_compile" = no; then
         echo "If $cc is a cross-compiler, use the --cross-compile option."
+        echo "Only do this if you know what cross compiling means."
     fi
     die "C compiler test failed."
 fi
 
+# check for assembler specific support
+
+if test $arch = "powerpc"; then
+check_cc <<EOF && dcbzl=yes
+int main(void) {
+    register long zero = 0;
+    char data[1024];
+    asm volatile("dcbzl %0, %1" : : "b" (data), "r" (zero));
+return 0;
+}
+EOF
+fi
+
 # check for SIMD availability
 
 # AltiVec flags: The FSF version of GCC differs from the Apple version
-if test $cpu = "powerpc"; then
+if test $arch = "powerpc"; then
     if test $altivec = "yes"; then
         if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
             add_cflags "-faltivec"
@@ -1176,9 +1219,29 @@ int main(void) {
 EOF
 fi
 
+# check armv5te instructions support
+if test $armv5te = "default" -a $arch = "armv4l"; then
+    armv5te=no
+    check_cc <<EOF && armv5te=yes
+        int main(void) {
+        __asm__ __volatile__ ("qadd r0, r0, r0");
+        }
+EOF
+fi
+
+# check iwmmxt support
+if test $iwmmxt = "default" -a $arch = "armv4l"; then
+    iwmmxt=no
+    check_cc <<EOF && iwmmxt=yes
+        int main(void) {
+        __asm__ __volatile__ ("wunpckelub wr6, wr4");
+        }
+EOF
+fi
+
 # mmi only available on mips
 if test $mmi = "default"; then
-    if test $cpu = "mips"; then
+    if test $arch = "mips"; then
         mmi="yes"
     else
         mmi="no"
@@ -1193,31 +1256,6 @@ int main(void) {
 }
 EOF
 
-# test gcc version to see if vector builtins can be used
-# currently only used on i386 for MMX builtins
-check_cc -msse <<EOF && builtin_vector=yes || builtin_vector=no
-#include <xmmintrin.h>
-int main(void) {
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
-return 0;
-#else
-#error no vector builtins
-#endif
-}
-EOF
-
-# test for mm3dnow.h
-test "$cpu" = "x86_64" && march=k8 || march=athlon
-check_cc -march=$march <<EOF && mm3dnow=yes || mm3dnow=no
-#include <mm3dnow.h>
-int main(void) {
-__m64 b1;
-b1 = _m_pswapd(b1);
-_m_femms();
-return 0;
-}
-EOF
-
 # ---
 # big/little-endian test
 if test "$cross_compile" = "no"; then
@@ -1230,7 +1268,7 @@ int main(int argc, char ** argv){
 EOF
 else
     # programs cannot be launched if cross compiling, so make a static guess
-    if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
+    if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
         bigendian="yes"
     fi
 fi
@@ -1266,6 +1304,8 @@ if test "$_memalign" = "no" -a "$mmx" = "yes" -a \
     die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
 fi
 
+check_header byteswap.h && byteswap_h=yes || byteswap_h=no
+
 check_func localtime_r && localtime_r=yes || localtime_r=no
 enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
 
@@ -1280,11 +1320,12 @@ if enabled pthreads; then
 fi
 
 # these are off by default, so fail if requested and not available
-enabled dts     && require libdts dts.h dts_init -ldts
+enabled dts     && require libdts dts.h dts_init -ldts -lm
 enabled libgsm  && require libgsm gsm.h gsm_create -lgsm
-enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame
+enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
 enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
 enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
+enabled libnut  && require libnut nut.h nut_demuxer_init -lnut
 enabled xvid    && require XviD xvid.h xvid_global -lxvidcore
 enabled x264    && require x264 x264.h x264_encoder_open -lx264
 enabled dc1394  && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
@@ -1494,10 +1535,10 @@ check_cflags -Wno-switch
 check_cflags -Wdisabled-optimization
 check_cflags -Wpointer-arith
 check_cflags -Wredundant-decls
-check_cflags -Winline
+enabled extrawarnings && check_cflags -Winline
 
 # add some linker flags
-check_ldflags '-Wl,--as-needed' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavformat' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
+check_ldflags $LDLATEFLAGS
 
 # not all compilers support -Os
 test "$optimize" = "small" && check_cflags -Os
@@ -1515,7 +1556,7 @@ fi
 if test "$lshared" = "yes" ; then
     # LIBOBJFLAGS may have already been set in the OS configuration
     if test -z "$LIBOBJFLAGS" ; then
-        case "$cpu" in
+        case "$arch" in
             x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
         esac
     fi
@@ -1536,32 +1577,34 @@ echo "install prefix   $PREFIX"
 echo "source path      $source_path"
 echo "C compiler       $cc"
 echo "make             $make"
-echo "CPU              $cpu ($tune)"
+echo "ARCH             $arch ($cpu)"
 if test "$BUILDSUF" != ""; then
     echo "build suffix     $BUILDSUF"
 fi
 echo "big-endian       $bigendian"
 echo "inttypes.h       $inttypes"
 echo "broken inttypes.h $emu_fast_int"
-if test $cpu = "x86" -o $cpu = "x86_64"; then
+if test $arch = "x86_32" -o $arch = "x86_64"; then
     echo "MMX enabled      $mmx"
-    echo "Vector Builtins  $builtin_vector"
-    echo "3DNow! Builtins  $mm3dnow"
+    echo "CMOV enabled     $cmov"
+    echo "CMOV is fast     $cmov_is_fast"
 fi
-if test $cpu = "armv4l"; then
+if test $arch = "armv4l"; then
     echo "ARMv5TE enabled  $armv5te"
     echo "IWMMXT enabled   $iwmmxt"
 fi
-if test $cpu = "mips"; then
+if test $arch = "mips"; then
     echo "MMI enabled      $mmi"
 fi
-if test $cpu = "powerpc"; then
+if test $arch = "powerpc"; then
     echo "AltiVec enabled  $altivec"
+    echo "dcbzl available  $dcbzl"
 fi
 echo "gprof enabled    $gprof"
 echo "zlib enabled     $zlib"
 echo "libgsm enabled   $libgsm"
 echo "mp3lame enabled  $mp3lame"
+echo "libnut enabled   $libnut"
 echo "libogg enabled   $libogg"
 echo "Vorbis enabled   $vorbis"
 echo "FAAD enabled     $faad"
@@ -1659,27 +1702,31 @@ echo "SLIBPREF=$SLIBPREF" >> config.mak
 echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
 echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
 echo "TARGET_OS=$targetos" >> config.mak
-if test "$cpu" = "x86" ; then
+if test "$arch" = "x86_32" -o "$arch" = "x86_64" ; then
   echo "TARGET_ARCH_X86=yes" >> config.mak
   echo "#define ARCH_X86 1" >> $TMPH
-elif test "$cpu" = "x86_64" ; then
+fi
+if test "$arch" = "x86_32" ; then
+  echo "TARGET_ARCH_X86_32=yes" >> config.mak
+  echo "#define ARCH_X86_32 1" >> $TMPH
+elif test "$arch" = "x86_64" ; then
   echo "TARGET_ARCH_X86_64=yes" >> config.mak
   echo "#define ARCH_X86_64 1" >> $TMPH
-elif test "$cpu" = "armv4l" ; then
+elif test "$arch" = "armv4l" ; then
   echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
   echo "#define ARCH_ARMV4L 1" >> $TMPH
-elif test "$cpu" = "alpha" ; then
+elif test "$arch" = "alpha" ; then
   echo "TARGET_ARCH_ALPHA=yes" >> config.mak
   echo "#define ARCH_ALPHA 1" >> $TMPH
-elif test "$cpu" = "sparc64" ; then
+elif test "$arch" = "sparc64" ; then
   echo "TARGET_ARCH_SPARC64=yes" >> config.mak
   echo "#define ARCH_SPARC64 1" >> $TMPH
   echo "TARGET_ARCH_SPARC=yes" >> config.mak
   echo "#define ARCH_SPARC 1" >> $TMPH
-elif test "$cpu" = "sparc" ; then
+elif test "$arch" = "sparc" ; then
   echo "TARGET_ARCH_SPARC=yes" >> config.mak
   echo "#define ARCH_SPARC 1" >> $TMPH
-elif test "$cpu" = "powerpc" ; then
+elif test "$arch" = "powerpc" ; then
   echo "TARGET_ARCH_POWERPC=yes" >> config.mak
   echo "#define ARCH_POWERPC 1" >> $TMPH
   if test $POWERPCMODE = "32bits"; then
@@ -1690,25 +1737,25 @@ elif test "$cpu" = "powerpc" ; then
   if test "$powerpc_perf" = "yes"; then
     echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
   fi
-elif test "$cpu" = "mips" ; then
+elif test "$arch" = "mips" ; then
   echo "TARGET_ARCH_MIPS=yes" >> config.mak
   echo "#define ARCH_MIPS 1" >> $TMPH
-elif test "$cpu" = "sh4" ; then
+elif test "$arch" = "sh4" ; then
   echo "TARGET_ARCH_SH4=yes" >> config.mak
   echo "#define ARCH_SH4 1" >> $TMPH
-elif test "$cpu" = "parisc" ; then
+elif test "$arch" = "parisc" ; then
   echo "TARGET_ARCH_PARISC=yes" >> config.mak
   echo "#define ARCH_PARISC 1" >> $TMPH
-elif test "$cpu" = "s390" ; then
+elif test "$arch" = "s390" ; then
   echo "TARGET_ARCH_S390=yes" >> config.mak
   echo "#define ARCH_S390 1" >> $TMPH
-elif test "$cpu" = "m68k" ; then
+elif test "$arch" = "m68k" ; then
   echo "TARGET_ARCH_M68K=yes" >> config.mak
   echo "#define ARCH_M68K 1" >> $TMPH
-elif test "$cpu" = "ia64" ; then
+elif test "$arch" = "ia64" ; then
   echo "TARGET_ARCH_IA64=yes" >> config.mak
   echo "#define ARCH_IA64 1" >> $TMPH
-elif test "$cpu" = "bfin" ; then
+elif test "$arch" = "bfin" ; then
   echo "TARGET_ARCH_BFIN=yes" >> config.mak
   echo "#define ARCH_BFIN 1" >> $TMPH
 fi
@@ -1728,13 +1775,13 @@ if test "$mmx" = "yes" ; then
   echo "#define HAVE_MMX 1" >> $TMPH
   echo "#define __CPU__ 586" >> $TMPH
 fi
-if test "$builtin_vector" = "yes" ; then
-  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
-  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
+if test "$cmov" = "yes" ; then
+  echo "TARGET_CMOV=yes" >> config.mak
+  echo "#define HAVE_CMOV 1" >> $TMPH
 fi
-if test "$mm3dnow" = "yes" ; then
-  echo "TARGET_BUILTIN_3DNOW=yes" >> config.mak
-  echo "#define HAVE_MM3DNOW 1" >> $TMPH
+if test "$cmov_is_fast" = "yes" ; then
+  echo "TARGET_CMOV_IS_FAST=yes" >> config.mak
+  echo "#define CMOV_IS_FAST 1" >> $TMPH
 fi
 if test "$armv5te" = "yes" ; then
   echo "TARGET_ARMV5TE=yes" >> config.mak
@@ -1748,11 +1795,16 @@ if test "$mmi" = "yes" ; then
   echo "TARGET_MMI=yes" >> config.mak
   echo "#define HAVE_MMI 1" >> $TMPH
 fi
+
+if test "$dcbzl" = "yes" ; then
+  echo "#define HAVE_DCBZL 1" >> $TMPH
+else
+  echo "#undef HAVE_DCBZL" >> $TMPH
+fi
+
 if test "$altivec" = "yes" ; then
   echo "TARGET_ALTIVEC=yes" >> config.mak
   echo "#define HAVE_ALTIVEC 1" >> $TMPH
-  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
-  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
   if test "$_altivec_h" = "yes" ; then
     echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
   else
@@ -1781,7 +1833,7 @@ if test "$pthreads" = "yes" ; then
   echo "#define HAVE_THREADS 1" >> $TMPH
 fi
 if test "$sdl" = "yes" ; then
-  echo "CONFIG_SDL=yes" >> config.mak
+  echo "HAVE_SDL=yes" >> config.mak
   echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
   echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
   if test "$sdl_video_size" = "yes"; then
@@ -1795,8 +1847,8 @@ if test "$have_lrintf" = "yes" ; then
   echo "#define HAVE_LRINTF 1" >> $TMPH
 fi
 if test "$vhook" = "yes" ; then
-  echo "BUILD_VHOOK=yes" >> config.mak
-  echo "#define HAVE_VHOOK 1" >> $TMPH
+  echo "CONFIG_VHOOK=yes" >> config.mak
+  echo "#define CONFIG_VHOOK 1" >> $TMPH
 fi
 
 sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
@@ -1953,6 +2005,11 @@ if test "$mp3lame" = "yes" ; then
   echo "CONFIG_MP3LAME=yes" >> config.mak
 fi
 
+if test "$libnut" = "yes" ; then
+  echo "#define CONFIG_LIBNUT 1" >> $TMPH
+  echo "CONFIG_LIBNUT=yes" >> config.mak
+fi
+
 if test "$libogg" = "yes" ; then
   echo "#define CONFIG_LIBOGG 1" >> $TMPH
   echo "CONFIG_LIBOGG=yes" >> config.mak
@@ -2051,6 +2108,9 @@ if test "$memalignhack" = "yes" ; then
   echo "#define MEMALIGN_HACK 1" >> $TMPH
 fi
 
+if test "$byteswap_h" = "yes"; then
+  echo "#define HAVE_BYTESWAP_H 1" >> $TMPH
+fi
 
 if test "$netserver" = "yes" ; then
   echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
@@ -2070,6 +2130,11 @@ if test "$protocols" = "yes" ; then
   echo "CONFIG_PROTOCOLS=yes" >> config.mak
 fi
 
+if test "$ffmpeg" = "yes" ; then
+  echo "#define CONFIG_FFMPEG 1" >> $TMPH
+  echo "CONFIG_FFMPEG=yes" >> config.mak
+fi
+
 if test "$ffserver" = "yes" ; then
   echo "#define CONFIG_FFSERVER 1" >> $TMPH
   echo "CONFIG_FFSERVER=yes" >> config.mak
@@ -2099,6 +2164,7 @@ if test "$source_path_used" = "yes" ; then
          libavcodec \
          libavcodec/alpha \
          libavcodec/armv4l \
+         libavcodec/bfin \
          libavcodec/i386 \
          libavcodec/sparc \
          libavcodec/mlib \
@@ -2112,6 +2178,7 @@ if test "$source_path_used" = "yes" ; then
          "
     FILES="\
           Makefile \
+          common.mak \
           libavformat/Makefile \
           libavcodec/Makefile \
           libpostproc/Makefile \
@@ -2129,8 +2196,9 @@ if test "$source_path_used" = "yes" ; then
         ln -sf "$source_path/$f" $f
     done
 fi
-echo "SRC_PATH=$source_path" >> config.mak
-echo "BUILD_ROOT=$PWD" >> config.mak
+echo "SRC_PATH=\"$source_path\"" >> config.mak
+echo "SRC_PATH_BARE=$source_path" >> config.mak
+echo "BUILD_ROOT=\"$PWD\"" >> config.mak
 
 if test "$amr" = "yes" ; then
   echo "#define CONFIG_AMR 1" >> $TMPH