]> git.sesse.net Git - ffmpeg/blobdiff - configure
Progressive frames disguised as interlaced are supported
[ffmpeg] / configure
index 261551b0398da8c710c342fc458436174a48a58e..a5c24a05b0212f4961a72d7d7058143bf642a6ad 100755 (executable)
--- a/configure
+++ b/configure
@@ -87,12 +87,15 @@ show_help(){
   echo "  --enable-faadbin         build FAAD support with runtime linking [default=no]"
   echo "  --enable-libgsm          enable GSM support via libgsm [default=no]"
   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-libtheora       enable Theora support via libtheora [default=no]"
-  echo "  --enable-vorbis          enable Vorbis support via libvorbis [default=no]"
+  echo "  --enable-libnut          enable NUT (de)muxing via libnut,"
+  echo "                           native demuxer exists [default=no]"
+  echo "  --enable-libogg          enable Ogg muxing via libogg [default=no]"
+  echo "  --enable-libtheora       enable Theora encoding via libtheora [default=no]"
+  echo "  --enable-vorbis          enable Vorbis en/decoding via libvorbis,"
+  echo "                           native implementations exist [default=no]"
   echo "  --enable-x264            enable H.264 encoding via x264 [default=no]"
-  echo "  --enable-xvid            enable Xvid encoding via xvidcore [default=no]"
+  echo "  --enable-xvid            enable Xvid encoding via xvidcore,"
+  echo "                           native MPEG-4/Xvid encoder exists [default=no]"
   echo "  --enable-amr_nb          enable amr_nb float audio codec"
   echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
   echo "  --enable-amr_wb          enable amr_wb float audio codec"
@@ -235,12 +238,24 @@ enabled_all(){
     done
 }
 
+disabled_all(){
+    for opt; do
+        disabled $opt || return 1
+    done
+}
+
 enabled_any(){
     for opt; do
         enabled $opt && return 0
     done
 }
 
+disabled_any(){
+    for opt; do
+        disabled $opt && return 0
+    done
+}
+
 check_deps(){
     for cfg; do
         eval dep_all="\$${cfg}_deps"
@@ -671,6 +686,7 @@ liba52bin="no"
 libdts="no"
 libfaac="no"
 libfaad="no"
+libfaad2="no"
 libfaadbin="no"
 libgsm="no"
 libmp3lame="no"
@@ -927,10 +943,7 @@ if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
     show_help
 fi
 
-FFMPEG_CONFIGURATION=" "
-for opt do
-  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
-done
+FFMPEG_CONFIGURATION="$@"
 
 ENCODER_LIST=`sed -n 's/^[^#]*ENC.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
 DECODER_LIST=`sed -n 's/^[^#]*DEC.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
@@ -1149,7 +1162,7 @@ for opt do
   esac
 done
 
-if test "$logging" != no; then
+if ! disabled logging ; then
     enabled logging || logfile="$logging"
     echo "# $0 $@" >$logfile
     set >>$logfile
@@ -1197,7 +1210,7 @@ ranlib="${cross_prefix}${ranlib}"
 strip="${cross_prefix}${strip}"
 
 # we need to build at least one lib type
-if disabled lstatic && disabled lshared; then
+if disabled_all lstatic lshared; then
     cat <<EOF
 At least one library type must be built.
 Specify --enable-static to build the static libraries or --enable-shared to
@@ -1215,53 +1228,36 @@ if enabled libvorbis && disabled libogg; then
     die "libogg must be enabled to enable libvorbis."
 fi
 
-if test "$gpl" != "yes"; then
-    if enabled pp; then
-        die "The Postprocessing code is under GPL and --enable-gpl is not specified."
-    fi
-
-    if test "$liba52" != "no" -o "$liba52bin" != "no"; then
-        die "liba52 is under GPL and --enable-gpl is not specified."
-    fi
-
-    if enabled xvid; then
-        die "libxvidcore is under GPL and --enable-gpl is not specified."
-    fi
-
-    if enabled x264; then
-        die "x264 is under GPL and --enable-gpl is not specified."
-    fi
-
-    if enabled libdts; then
-        die "libdts is under GPL and --enable-gpl is not specified."
-    fi
-
-    if test "$libfaad" != "no" -o "$libfaadbin" != "no"; then
-        if check_header faad.h; then
-            check_cc << EOF
-                #include <faad.h>
-                #ifndef FAAD2_VERSION
-                ok faad1
-                #endif
-                int main( void ) { return 0; }
+if enabled_any libfaad libfaadbin ; then
+    if check_header faad.h; then
+        check_cc << EOF
+#include <faad.h>
+#ifndef FAAD2_VERSION
+ok faad1
+#endif
+int main( void ) { return 0; }
 EOF
-            if test $? = 0 ; then
-                die "FAAD2 is under GPL and --enable-gpl is not specified."
-            fi
-        else
-            libfaad="no"
-            libfaadbin="no"
-            echo "FAAD test failed."
-        fi
+        test $? = 0 && enable libfaad2
+    else
+        die "FAAD test failed."
     fi
+fi
 
-    if enabled x11grab; then
-        die "The X11 grabber is under GPL and --enable-gpl is not specified."
-    fi
 
-    if enabled swscaler; then
-        die "The software scaler is under GPL and --enable-gpl is not specified."
-    fi
+if disabled gpl ; then
+    die_gpl_disabled(){
+        name=$1
+        shift
+        enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified."
+    }
+    die_gpl_disabled "The Postprocessing code" pp
+    die_gpl_disabled "liba52"                  liba52 liba52bin
+    die_gpl_disabled "libxvidcore"             xvid
+    die_gpl_disabled "x264"                    x264
+    die_gpl_disabled "libdts"                  libdts
+    die_gpl_disabled "FAAD2"                   libfaad2
+    die_gpl_disabled "The X11 grabber"         x11grab
+    die_gpl_disabled "The software scaler"     swscaler
 fi
 
 # compute MMX state
@@ -1302,7 +1298,7 @@ if test $targetos = Darwin; then
     fi
 fi
 
-if test $optimize != "no"; then
+if ! disabled optimize ; then
     add_cflags "-fomit-frame-pointer"
 fi
 
@@ -1318,48 +1314,40 @@ fi
 # Add processor-specific flags
 POWERPCMODE="32bits"
 if test $cpu != "generic"; then
+    warn_altivec_enabled(){
+        enabled altivec && echo "WARNING: Tuning for $1 but AltiVec enabled.";
+    }
+    warn_altivec_disabled(){
+        disabled altivec && echo "WARNING: Tuning for $1 but AltiVec disabled.";
+    }
     case $cpu in
         601|ppc601|PowerPC601)
             add_cflags "-mcpu=601"
-            if enabled altivec; then
-                echo "WARNING: Tuning for PPC601 but AltiVec enabled!";
-            fi
+            warn_altivec_enabled PPC601
         ;;
         603*|ppc603*|PowerPC603*)
             add_cflags "-mcpu=603"
-            if enabled altivec; then
-                echo "WARNING: Tuning for PPC603 but AltiVec enabled!";
-            fi
+            warn_altivec_enabled PPC603
         ;;
         604*|ppc604*|PowerPC604*)
             add_cflags "-mcpu=604"
-            if enabled altivec; then
-                echo "WARNING: Tuning for PPC604 but AltiVec enabled!";
-            fi
+            warn_altivec_enabled PPC604
         ;;
         G3|g3|75*|ppc75*|PowerPC75*)
             add_cflags "-mcpu=750 -mpowerpc-gfxopt"
-            if enabled altivec; then
-                echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
-            fi
+            warn_altivec_enabled PPC75x
         ;;
         G4|g4|745*|ppc745*|PowerPC745*)
             add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
-            if disabled altivec; then
-                echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
-            fi
+            warn_altivec_disabled PPC745x
         ;;
         74*|ppc74*|PowerPC74*)
             add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
-            if disabled altivec; then
-                echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
-            fi
+            warn_altivec_disabled PPC74xx
         ;;
         G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
             add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
-            if disabled altivec; then
-                echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
-            fi
+            warn_altivec_disabled PPC970
             POWERPCMODE="64bits"
         ;;
         # targets that do NOT support conditional mov (cmov)
@@ -1411,7 +1399,7 @@ int main(){
 EOF
 if test "$?" != 0; then
     echo "$cc is unable to create an executable file."
-    if test -z "$cross_prefix" -a "$cross_compile" = no; then
+    if test -z "$cross_prefix" && disabled cross_compile ; 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
@@ -1531,8 +1519,7 @@ fi
 check_header malloc.h
 check_func memalign
 
-if test "$memalign" = "no" -a "$need_memalign" = "yes" -a \
-        "$memalign_hack" != "yes"; then
+if disabled_all memalign memalign_hack && enabled need_memalign ; then
     die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
 fi
 
@@ -1560,7 +1547,7 @@ fi
 
 for thread in pthreads beosthreads os2threads w32threads; do
     if enabled $thread; then
-        if test $thread_type != "no"; then
+        if ! disabled thread_type ; then
             die "ERROR: Only one thread type must be selected."
         else
             thread_type="$thread"
@@ -1569,17 +1556,17 @@ for thread in pthreads beosthreads os2threads w32threads; do
 done
 
 # these are off by default, so fail if requested and not available
-enabled libdts  && require libdts dts.h dts_init -ldts -lm
-enabled libgsm  && require libgsm gsm.h gsm_create -lgsm
+enabled libdts     && require libdts dts.h dts_init -ldts -lm
+enabled libgsm     && require libgsm gsm.h gsm_create -lgsm
 enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
-enabled libtheora && require libtheora theora/theora.h theora_info_init -ltheora -logg
-enabled libvorbis && 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 libnut.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
-enabled mlib    && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
+enabled libtheora  && require libtheora theora/theora.h theora_info_init -ltheora -logg
+enabled libvorbis  && 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 libnut.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
+enabled mlib       && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
 
 # Ugh, libfaac uses stdcall calling convention on win32 so we can't use
 # the generic test functions
@@ -1661,7 +1648,7 @@ if enabled_any vhook liba52bin libfaadbin; then
     add_extralibs $ldl
 fi
 
-if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then
+if test "$targetos" = "CYGWIN" && enabled lstatic ; then
     vhook="no"
     echo
     echo "At the moment vhooks don't work on Cygwin static builds."
@@ -1681,13 +1668,16 @@ fi
 ##########################################
 # imlib check
 
-temp_extralibs -lImlib2
-check_ld <<EOF && imlib2=yes || imlib2=no
-#include <X11/Xlib.h>
+imlib2=no
+if (imlib2-config --version) >/dev/null 2>&1 ; then
+    temp_cflags `imlib2-config --cflags`
+    temp_extralibs `imlib2-config --libs`
+    check_ld <<EOF && imlib2=yes
 #include <Imlib2.h>
 int main( void ) { return (int) imlib_load_font("foo"); }
 EOF
-restore_flags
+    restore_flags
+fi
 
 ##########################################
 # FreeType check
@@ -1930,7 +1920,7 @@ echo "Creating config.mak and config.h..."
 
 echo "# Automatically generated by configure - do not modify!" > config.mak
 echo "/* Automatically generated by configure - do not modify! */" > $TMPH
-echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
+echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
 
 echo "PREFIX=$PREFIX" >> config.mak
 echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak