]> git.sesse.net Git - ffmpeg/blobdiff - configure
Add audio channel layout API to libavcodec.
[ffmpeg] / configure
index 542c9a79493d8f8c66249c742d8da21f105ba7ad..42e924f34b9a4c50e696ac070a81e0c3169fba3a 100755 (executable)
--- a/configure
+++ b/configure
@@ -250,6 +250,14 @@ set_all(){
     done
 }
 
+set_weak(){
+    value=$1
+    shift
+    for var; do
+        eval : \${$var:=$value}
+    done
+}
+
 pushvar(){
     for var in $*; do
         eval level=\${${var}_level:=0}
@@ -277,12 +285,23 @@ disable(){
     set_all no $*
 }
 
+enable_weak(){
+    set_weak yes $*
+}
+
+disable_weak(){
+    set_weak no $*
+}
+
 do_enable_deep(){
     for var; do
         enabled $var && continue
         eval sel="\$${var}_select"
-        pushvar var
+        eval sgs="\$${var}_suggest"
+        pushvar var sgs
         enable_deep $sel
+        popvar sgs
+        enable_deep_weak $sgs
         popvar var
     done
 }
@@ -292,6 +311,11 @@ enable_deep(){
     enable $*
 }
 
+enable_deep_weak(){
+    do_enable_deep $*
+    enable_weak $*
+}
+
 enabled(){
     test "${1#!}" = "$1" && op== || op=!=
     eval test "x\$${1#!}" $op "xyes"
@@ -352,10 +376,11 @@ check_deps(){
         eval dep_all="\$${cfg}_deps"
         eval dep_any="\$${cfg}_deps_any"
         eval dep_sel="\$${cfg}_select"
+        eval dep_sgs="\$${cfg}_suggest"
 
-        pushvar cfg dep_all dep_any dep_sel
-        check_deps $dep_all $dep_any $dep_sel
-        popvar cfg dep_all dep_any dep_sel
+        pushvar cfg dep_all dep_any dep_sel dep_sgs
+        check_deps $dep_all $dep_any $dep_sel $dep_sgs
+        popvar cfg dep_all dep_any dep_sel dep_sgs
 
         enabled_all  $dep_all || disable $cfg
         enabled_any  $dep_any || disable $cfg
@@ -365,6 +390,7 @@ check_deps(){
             eval dep_extralibs="\$${cfg}_extralibs"
             test -n "$dep_extralibs" && add_extralibs $dep_extralibs
             enable_deep $dep_sel
+            enable_deep_weak $dep_sgs
         fi
 
         disable ${cfg}_checking
@@ -697,6 +723,7 @@ CONFIG_LIST="
     ffplay
     ffserver
     fft
+    golomb
     gpl
     gprof
     gray
@@ -718,6 +745,7 @@ CONFIG_LIST="
     libvorbis
     libx264
     libxvid
+    mdct
     memalign_hack
     mlib
     mpegaudio_hp
@@ -832,6 +860,11 @@ HAVE_LIST="
     yasm
 "
 
+# options emitted with CONFIG_ prefix but not available on command line
+CONFIG_EXTRA="
+    fft_mmx
+"
+
 CMDLINE_SELECT="
     $ARCH_EXT_LIST
     $CONFIG_LIST
@@ -883,34 +916,57 @@ neon_deps="armv4l"
 ssse3_deps="x86"
 vis_deps="sparc"
 
+# common features
+fft_suggest="fft_mmx"
+fft_mmx_deps="mmx yasm"
+
 # decoders / encoders
-aac_decoder_select="fft"
+aac_decoder_select="fft mdct"
 ac3_decoder_deps="gpl"
-ac3_decoder_select="fft"
-ac3_encoder_select="fft"
-atrac3_decoder_select="fft"
-cook_decoder_select="fft"
-dxa_decoder_deps="zlib"
+ac3_decoder_select="fft mdct"
+atrac3_decoder_select="fft mdct"
+cavs_decoder_select="golomb"
+cook_decoder_select="fft mdct"
+cscd_decoder_suggest="zlib"
+dca_decoder_select="fft mdct"
+dxa_decoder_select="zlib"
 eac3_decoder_deps="gpl"
-eac3_decoder_select="fft"
-flashsv_decoder_deps="zlib"
-flashsv_encoder_deps="zlib"
-imc_decoder_select="fft"
-mlp_decoder_deps="mlp_parser"
+eac3_decoder_select="fft mdct"
+ffv1_decoder_select="golomb"
+flac_decoder_select="golomb"
+flac_encoder_select="golomb"
+flashsv_decoder_select="zlib"
+flashsv_encoder_select="zlib"
+h264_decoder_select="golomb"
+imc_decoder_select="fft mdct"
+jpegls_decoder_select="golomb"
+jpegls_encoder_select="golomb"
+loco_decoder_select="golomb"
 mpeg_xvmc_decoder_deps="xvmc"
-nellymoser_decoder_select="fft"
-nellymoser_encoder_select="fft"
-png_decoder_deps="zlib"
-png_encoder_deps="zlib"
-qdm2_decoder_select="fft"
-vorbis_decoder_select="fft"
-vorbis_encoder_select="fft"
-wmav1_decoder_select="fft"
-wmav1_encoder_select="fft"
-wmav2_decoder_select="fft"
-wmav2_encoder_select="fft"
-zmbv_decoder_deps="zlib"
-zmbv_encoder_deps="zlib"
+nellymoser_decoder_select="fft mdct"
+nellymoser_encoder_select="fft mdct"
+png_decoder_select="zlib"
+png_encoder_select="zlib"
+qdm2_decoder_select="fft mdct"
+shorten_decoder_select="golomb"
+sonic_decoder_select="golomb"
+sonic_encoder_select="golomb"
+sonic_ls_encoder_select="golomb"
+svq3_decoder_select="golomb"
+svq3_decoder_suggest="zlib"
+tiff_decoder_suggest="zlib"
+tiff_encoder_suggest="zlib"
+tscc_decoder_select="zlib"
+vorbis_decoder_select="fft mdct"
+vorbis_encoder_select="fft mdct"
+wmav1_decoder_select="fft mdct"
+wmav1_encoder_select="fft mdct"
+wmav2_decoder_select="fft mdct"
+wmav2_encoder_select="fft mdct"
+zlib_decoder_select="zlib"
+zlib_encoder_select="zlib"
+zmbv_decoder_select="zlib"
+zmbv_encoder_select="zlib"
 
 # external libraries
 libamr_nb_decoder_deps="libamr_nb"
@@ -949,6 +1005,8 @@ dv1394_demuxer_deps="dv1394 dv_demuxer"
 libdc1394_demuxer_deps="libdc1394"
 libnut_demuxer_deps="libnut"
 libnut_muxer_deps="libnut"
+matroska_demuxer_suggest="zlib bzlib"
+mov_demuxer_suggest="zlib"
 mp3_demuxer_deps="mpegaudio_parser"
 oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
 oss_muxer_deps_any="soundcard_h sys_soundcard_h"
@@ -1009,10 +1067,6 @@ cpu="generic"
 # OS
 target_os=$(tolower $(uname -s))
 
-# libraries
-enable bzlib
-enable zlib
-
 # configurable options
 enable debug
 enable ffmpeg
@@ -1716,8 +1770,8 @@ if ! enabled_any memalign memalign_hack && enabled need_memalign ; then
     die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
 fi
 
-enabled  zlib && check_lib  zlib.h      zlibVersion -lz   || disable  zlib
-enabled bzlib && check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
+disabled  zlib || check_lib  zlib.h      zlibVersion -lz   || disable  zlib
+disabled bzlib || check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
 
 # check for some common methods of building with pthread support
 # do this before the optional library checks as some of them require pthreads
@@ -1988,6 +2042,7 @@ enabled_any $PROTOCOL_LIST     && enable protocols
 enabled_any $THREADS_LIST      && enable threads
 
 check_deps $CONFIG_LIST       \
+           $CONFIG_EXTRA      \
            $HAVE_LIST         \
            $DECODER_LIST      \
            $ENCODER_LIST      \
@@ -2197,6 +2252,7 @@ echo "EXTRALIBS=$extralibs" >> config.mak
 print_config ARCH_   $TMPH config.mak $ARCH_LIST
 print_config HAVE_   $TMPH config.mak $HAVE_LIST
 print_config CONFIG_ $TMPH config.mak $CONFIG_LIST       \
+                                      $CONFIG_EXTRA      \
                                       $DECODER_LIST      \
                                       $ENCODER_LIST      \
                                       $PARSER_LIST       \