]> git.sesse.net Git - ffmpeg/blobdiff - configure
using isnan instead of d==d, to signal correctly parsed option
[ffmpeg] / configure
index 11ee68d59ad77bf24790ea0a80febf66c8f7b3b7..01143ce4388a26eaae9d57843757bfccd4edf2d9 100755 (executable)
--- a/configure
+++ b/configure
@@ -71,23 +71,22 @@ show_help(){
   echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
   echo "  --enable-swscaler        software scaler support [default=no]"
   echo "  --enable-beosthreads     use BeOS threads [default=no]"
-  echo "  --enable-os2threads      use OS/2 threads [default=no]"
   echo "  --enable-pthreads        use pthreads [default=no]"
   echo "  --enable-w32threads      use Win32 threads [default=no]"
   echo "  --enable-x11grab         enable X11 grabbing [default=no]"
   echo
   echo "External library support:"
   echo "  --enable-sunmlib         use Sun medialib [default=no]"
-  echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394"
-  echo "                           and libraw1394 [default=no]"
   echo "  --enable-liba52          enable GPLed liba52 support [default=no]"
   echo "  --enable-liba52bin       open liba52.so.0 at runtime [default=no]"
   echo "  --enable-avisynth        allow reading AVISynth script files [default=no]"
   echo "  --enable-libamr-nb       enable libamr-nb floating point audio codec"
   echo "  --enable-libamr-wb       enable libamr-wb floating point audio codec"
+  echo "  --enable-libdc1394       enable IIDC-1394 grabbing using libdc1394"
+  echo "                           and libraw1394 [default=no]"
   echo "  --enable-libfaac         enable FAAC support via libfaac [default=no]"
   echo "  --enable-libfaad         enable FAAD support via libfaad [default=no]"
-  echo "  --enable-libfaadbin      build FAAD support with runtime linking [default=no]"
+  echo "  --enable-libfaadbin      open libfaad.so.0 at runtime [default=no]"
   echo "  --enable-libgsm          enable GSM support via libgsm [default=no]"
   echo "  --enable-libmp3lame      enable MP3 encoding via libmp3lame [default=no]"
   echo "  --enable-libnut          enable NUT (de)muxing via libnut,"
@@ -126,7 +125,6 @@ show_help(){
   echo "  --disable-v4l            disable video4linux grabbing [default=no]"
   echo "  --disable-v4l2           disable video4linux2 grabbing [default=no]"
   echo "  --disable-bktr           disable bktr video grabbing [default=no]"
-  echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
   echo "  --disable-network        disable network support [default=no]"
   echo "  --disable-ipv6           disable ipv6 support [default=no]"
   echo "  --disable-zlib           disable zlib [default=no]"
@@ -134,6 +132,7 @@ show_help(){
   echo "  --disable-debug          disable debugging symbols"
   echo "  --disable-mpegaudio-hp   faster (but less accurate)"
   echo "                           MPEG audio decoding [default=no]"
+  echo "  --enable-gray            enable full grayscale support (slower color)"
   echo "  --disable-ffmpeg         disable ffmpeg build"
   echo "  --disable-ffserver       disable ffserver build"
   echo "  --disable-ffplay         disable ffplay build"
@@ -160,6 +159,13 @@ show_help(){
   echo "  --enable-protocol=NAME   enables protocol NAME"
   echo "  --disable-protocol=NAME  disables protocol NAME"
   echo "  --disable-protocols      disables all protocols"
+  echo "  --list-decoders          show all available decoders"
+  echo "  --list-encoders          show all available encoders"
+  echo "  --list-muxers            show all available muxers"
+  echo "  --list-demuxers          show all available demuxers"
+  echo "  --list-parsers           show all available parsers"
+  echo "  --list-protocols         show all available protocols"
+  echo "  --list-bsfs              show all available bitstream filters"
   echo
   echo "Developer options (useful when working on FFmpeg itself):"
   echo "  --enable-gprof           enable profiling with gprof [$gprof]"
@@ -284,6 +290,15 @@ disabled_any(){
     done
 }
 
+is_in(){
+    value=$1
+    shift
+    for var in $*; do
+        [ $var = $value ] && return 0
+    done
+    return 1
+}
+
 check_deps(){
     for cfg; do
         enabled ${cfg}_checking && die "Circular dependency for $cfg."
@@ -560,31 +575,36 @@ apply(){
     "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
 }
 
-CONFIG_LIST='
-    encoders
-    decoders
-    parsers
+COMPONENT_LIST="
     bsfs
-    muxers
+    decoders
     demuxers
+    encoders
+    muxers
+    parsers
+    protocols
+"
+
+CONFIG_LIST="
+    $COMPONENT_LIST
     audio_beos
     audio_oss
     avisynth
     beos_netserver
     bktr
-    dc1394
-    dv1394
     ffmpeg
     ffplay
     ffserver
     gpl
     gprof
+    gray
     ipv6
     liba52
     liba52bin
     libamr
     libamr_nb
     libamr_wb
+    libdc1394
     libfaac
     libfaad
     libfaadbin
@@ -601,18 +621,17 @@ CONFIG_LIST='
     network
     powerpc_perf
     pp
-    protocols
+    small
     swscaler
     vhook
     v4l
     v4l2
     x11grab
     zlib
-'
+"
 
 THREADS_LIST='
     beosthreads
-    os2threads
     pthreads
     w32threads
 '
@@ -651,7 +670,9 @@ HAVE_LIST="
     altivec_h
     arpa_inet_h
     byteswap_h
+    closesocket
     cmov
+    conio_h
     dcbzl
     dev_bktr_ioctl_bt848_h
     dev_bktr_ioctl_meteor_h
@@ -665,7 +686,11 @@ HAVE_LIST="
     fast_64bit
     fast_cmov
     fast_unaligned
+    fork
     freetype2
+    gethrtime
+    GetProcessTimes
+    getrusage
     imlib2
     inet_aton
     lrintf
@@ -673,15 +698,17 @@ HAVE_LIST="
     machine_ioctl_meteor_h
     malloc_h
     memalign
+    mkstemp
     mlib
-    os2
     ppc64
     sdl
     sdl_video_size
     soundcard_h
     sys_poll_h
     sys_soundcard_h
+    termios_h
     threads
+    winsock2_h
 "
 
 CMDLINE_SELECT="
@@ -706,6 +733,7 @@ mmx_deps="x86"
 ssse3_deps="x86"
 
 # decoders / encoders
+ac3_decoder_deps="gpl"
 dxa_decoder_deps="zlib"
 flashsv_decoder_deps="zlib"
 flashsv_encoder_deps="zlib"
@@ -720,6 +748,7 @@ msmpeg4v2_decoder_deps="h263_decoder"
 msmpeg4v3_decoder_deps="h263_decoder"
 png_decoder_deps="zlib"
 png_encoder_deps="zlib"
+svq3_decoder_deps="h264_parser"
 vc1_decoder_deps="h263_decoder"
 wmv1_decoder_deps="h263_decoder"
 wmv2_decoder_deps="h263_decoder"
@@ -751,9 +780,8 @@ libxvid_encoder_deps="libxvid"
 ac3_demuxer_deps="ac3_parser"
 audio_demuxer_deps_any="audio_oss audio_beos"
 audio_muxer_deps_any="audio_oss audio_beos"
-dc1394_demuxer_deps="dc1394"
 dv1394_demuxer_deps="dv1394"
-gxf_muxer_deps="gpl"
+libdc1394_demuxer_deps="libdc1394"
 libnut_demuxer_deps="libnut"
 libnut_muxer_deps="libnut"
 mp3_demuxer_deps="mpegaudio_parser"
@@ -800,15 +828,13 @@ logfile="config.err"
 
 # installation paths
 PREFIX="/usr/local"
-libdir='${PREFIX}/lib'
+libdir='$(PREFIX)/lib'
 shlibdir="$libdir"
-incdir='${PREFIX}/include/ffmpeg'
-mandir='${PREFIX}/man'
-bindir='${PREFIX}/bin'
+incdir='$(PREFIX)/include/ffmpeg'
+mandir='$(PREFIX)/man'
+bindir='$(PREFIX)/bin'
 
 # toolchain
-cross_prefix=""
-cross_compile="no"
 cc="gcc"
 ar="ar"
 ranlib="ranlib"
@@ -826,7 +852,6 @@ targetos=$(tolower $(uname -s))
 # non-library system interfaces
 audio_oss="yes"
 bktr="yes"
-dv1394="yes"
 v4l2="yes"
 v4l="yes"
 
@@ -839,11 +864,8 @@ dostrip="yes"
 ffmpeg="yes"
 ffplay="yes"
 ffserver="yes"
-gpl="no"
 ipv6="yes"
-shared="no"
 static="yes"
-memalign_hack="no"
 mpegaudio_hp="yes"
 network="yes"
 optimize="yes"
@@ -853,8 +875,6 @@ vhook="default"
 # build settings
 SHFLAGS='-shared -Wl,-soname,$@'
 VHOOKSHFLAGS='$(SHFLAGS)'
-LIBOBJFLAGS=""
-FFLDFLAGS=
 LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
 FFSERVERLDFLAGS=-Wl,-E
 LDCONFIG="ldconfig"
@@ -866,9 +886,7 @@ SLIBSUF=".so"
 SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
 SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
 SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
-EXESUF=""
-BUILDSUF=""
-LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
+LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIB)"'
 
 # find source path
 source_path="`dirname \"$0\"`"
@@ -897,6 +915,7 @@ DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path
 PROTOCOL_LIST=`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' "$source_path/libavformat/allformats.c"`
 
 enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST $DEMUXER_LIST $PROTOCOL_LIST $BSF_LIST
+enable $ARCH_EXT_LIST
 
 die_unknown(){
     echo "Unknown option \"$1\"."
@@ -904,6 +923,13 @@ die_unknown(){
     exit 1
 }
 
+show_list() {
+    for part in $*; do
+        echo $part | sed 's/_[^_]*$//'
+    done | sort
+    exit 0
+}
+
 for opt do
   optval="${opt#*=}"
   case "$opt" in
@@ -947,8 +973,6 @@ for opt do
   ;;
   --disable-opts) optimize="no"
   ;;
-  --enable-small) optimize="small"
-  ;;
   --enable-sunmlib) mlib="yes"
   ;;
   --disable-strip) dostrip="no"
@@ -979,6 +1003,12 @@ for opt do
   echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
   $action $option
   ;;
+  --list-*)
+    NAME="${opt#--list-}"
+    is_in $NAME $COMPONENT_LIST || die_unknown $opt
+    NAME=$(toupper ${NAME%s})
+    eval show_list \$${NAME}_LIST
+  ;;
   --help) show_help
   ;;
   *)
@@ -1079,8 +1109,6 @@ case $targetos in
     esac
     LDCONFIG="echo ignoring ldconfig"
     SHFLAGS=-nostart
-    # disable Linux things
-    dv1394="no"
     # enable BeOS things
     disabled audio_beos || enable_audio_beos
     # no need for libm, but the inet stuff
@@ -1093,21 +1121,17 @@ case $targetos in
         osextralibs="-lnet"
     fi ;;
   sunos)
-    dv1394="no"
-    FFLDFLAGS=""
     FFSERVERLDFLAGS=""
     SHFLAGS="-shared -Wl,-h,\$@"
     add_extralibs "-lsocket -lnsl"
     ;;
   netbsd)
-    dv1394="no"
     add_extralibs "-lossaudio"
     ;;
   openbsd)
-    dv1394="no"
     need_memalign="no"
     LIBOBJFLAGS="\$(PIC)"
-    LDCONFIG="ldconfig -m \$(shlibdir)"
+    LDCONFIG="ldconfig -m \$(SHLIBDIR)"
     SHFLAGS='-shared'
     SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
     SLIBNAME_WITH_VERSION='$(SLIBNAME)'
@@ -1115,24 +1139,20 @@ case $targetos in
     add_extralibs "-lossaudio"
     ;;
   freebsd)
-    dv1394="no"
     need_memalign="no"
     add_cflags "-pthread"
     ;;
   gnu/kfreebsd)
-    dv1394="no"
     add_cflags "-pthread"
     ;;
   bsd/os)
-    dv1394="no"
     osextralibs="-lpoll -lgnugetopt -lm"
     strip="strip -d"
     ;;
   darwin)
-    dv1394="no"
     need_memalign="no"
-    SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
-    VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
+    SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(SHLIBDIR)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
+    VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@'
     osextralibs=""
     strip="strip -x"
     FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
@@ -1144,27 +1164,31 @@ case $targetos in
   mingw32*)
     targetos=mingw32
     shlibdir="$bindir"
-    dv1394="no"
-    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
-    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
+    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+    if enabled swscaler; then
+        VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
+        VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
+    fi
     ffserver="no"
-    network="no"
     SLIBPREF=""
     SLIBSUF=".dll"
     EXESUF=".exe"
     SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
     SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
     SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
-    SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(shlibdir)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
+    SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(SHLIBDIR)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
     SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base"
-    enabled network && add_extralibs -lws2_32
     ;;
   cygwin*)
     targetos=cygwin
     shlibdir="$bindir"
-    dv1394="no"
-    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
-    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
+    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+    if enabled swscaler; then
+        VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
+        VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
+    fi
     osextralibs=""
     EXESUF=".exe"
     SLIBPREF="cyg"
@@ -1175,32 +1199,12 @@ case $targetos in
     ;;
   linux)
     LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
+    dv1394="yes"
     ;;
   irix*)
     targetos=irix
     ranlib="echo ignoring ranlib"
     ;;
-  os/2)
-    TMPE=$TMPE".exe"
-    ar="emxomfar -p128"
-    ranlib="echo ignoring ranlib"
-    strip="echo ignoring strip"
-    add_cflags "-Zomf"
-    FFLDFLAGS="-Zomf -Zstack 16384 -s"
-    SHFLAGS="-Zdll -Zomf"
-    FFSERVERLDFLAGS=""
-    LIBPREF=""
-    LIBSUF=".lib"
-    SLIBPREF=""
-    SLIBSUF=".dll"
-    EXESUF=".exe"
-    osextralibs=""
-    pkg_requires=""
-    dv1394="no"
-    ffserver="no"
-    vhook="no"
-    os2="yes"
-    ;;
   *)
     targetos="${targetos}-UNKNOWN"
     ;;
@@ -1226,7 +1230,7 @@ ranlib="${cross_prefix}${ranlib}"
 strip="${cross_prefix}${strip}"
 
 # we need to build at least one lib type
-if disabled_all static shared; then
+if ! enabled_any static shared; then
     cat <<EOF
 At least one library type must be built.
 Specify --enable-static to build the static libraries or --enable-shared to
@@ -1236,7 +1240,11 @@ EOF
     exit 1;
 fi
 
-if disabled libogg; then
+if disabled static; then
+    LIB=""
+fi
+
+if ! enabled libogg; then
     enabled libtheora && die "libogg must be enabled to enable libtheora."
     enabled libvorbis && die "libogg must be enabled to enable libvorbis."
 fi
@@ -1257,7 +1265,7 @@ EOF
 fi
 
 
-if disabled gpl ; then
+if ! enabled gpl; then
     die_gpl_disabled(){
         name=$1
         shift
@@ -1272,13 +1280,11 @@ if disabled gpl ; then
     die_gpl_disabled "The software scaler"     swscaler
 fi
 
-enable     $ARCH_EXT_LIST
 check_deps $ARCH_EXT_LIST
 
 test -z "$need_memalign" && need_memalign="$mmx"
 
 #Darwin CC versions
-needmdynamicnopic="no"
 if test $targetos = darwin; then
     if test -n "`$cc -v 2>&1 | grep xlc`"; then
         add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
@@ -1286,10 +1292,9 @@ if test $targetos = darwin; then
         add_cflags "-no-cpp-precomp -pipe"
         check_cflags "-force_cpusubtype_ALL"
         check_cflags "-Wno-sign-compare"
-        disabled shared && needmdynamicnopic="yes"
+        disabled shared && add_cflags -mdynamic-no-pic
     fi
 fi
-enabled needmdynamicnopic && add_cflags -mdynamic-no-pic
 
 disabled optimize || add_cflags -fomit-frame-pointer
 
@@ -1394,7 +1399,7 @@ int main(){
 EOF
 if test "$?" != 0; then
     echo "$cc is unable to create an executable file."
-    if test -z "$cross_prefix" && disabled cross_compile ; then
+    if test -z "$cross_prefix" && ! enabled 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
@@ -1500,20 +1505,10 @@ EOF
 
 # ---
 # big/little-endian test
-if disabled cross_compile; then
-    check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
-#include <inttypes.h>
-int main(int argc, char ** argv){
-        volatile uint32_t i=0x01234567;
-        return (*((uint8_t*)(&i))) == 0x67;
-}
+check_cc <<EOF || die "endian test failed"
+unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
 EOF
-else
-    # programs cannot be launched if cross compiling, so make a static guess
-    if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
-        bigendian="yes"
-    fi
-fi
+grep -q BIGE $TMPO && enable bigendian
 
 # ---
 # check availability of some header files
@@ -1521,13 +1516,17 @@ fi
 check_header malloc.h
 check_func memalign
 
-if disabled_all memalign memalign_hack && enabled need_memalign ; then
+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
 
 check_header byteswap.h
 
-check_header arpa/inet.h
+check_func mkstemp
+check_func gethrtime
+
+check_header termios.h
+check_header conio.h
 
 check_func inet_aton
 enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
@@ -1574,22 +1573,25 @@ EOF
 enabled_any libamr_nb libamr_wb && enable libamr
 
 # these are off by default, so fail if requested and not available
+enabled avisynth   && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
 enabled liba52     && require liba52 a52dec/a52.h a52_init -la52
 enabled libamr_nb  && require libamrnb amrnb/interf_dec.h Speech_Decode_Frame_init -lamrnb -lm
 enabled libamr_wb  && require libamrwb amrwb/dec_if.h D_IF_init -lamrwb -lm
+enabled libdc1394  && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
+enabled libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
+enabled libfaad    && require2 libfaad faad.h faacDecOpen -lfaad
 enabled libgsm     && require libgsm gsm.h gsm_create -lgsm
 enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
+enabled libnut     && require libnut libnut.h nut_demuxer_init -lnut
+enabled libogg     && require libogg ogg/ogg.h ogg_sync_init -logg
 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 libx264    && require x264 x264.h x264_encoder_open -lx264
 enabled libxvid    && require Xvid xvid.h xvid_global -lxvidcore
-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 libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
-enabled libfaad    && require2 libfaad faad.h faacDecOpen -lfaad
-enabled avisynth   && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
+
+# disable the native AC-3 decoder if liba52 is enabled
+enabled liba52 && disable ac3_decoder
 
 _restrict=
 for restrict_keyword in restrict __restrict__ __restrict; do
@@ -1608,6 +1610,9 @@ elif check_func dlopen -ldl; then
     ldl=-ldl
 fi
 
+check_func getrusage
+check_func2 windows.h GetProcessTimes
+
 check_func fork
 
 test "$vhook" = "default" && vhook="$dlopen"
@@ -1663,6 +1668,19 @@ fi
 
 texi2html -version >/dev/null 2>&1 && enable texi2html || disable texi2html
 
+##########################################
+# Network check
+
+if enabled network; then
+    # Prefer arpa/inet.h over winsock2
+    if check_header arpa/inet.h ; then
+        check_func closesocket
+    elif check_header winsock2.h ; then
+        add_extralibs -lws2_32
+        check_func2 winsock2.h closesocket
+    fi
+fi
+
 ##########################################
 # IPv6 check
 
@@ -1727,10 +1745,10 @@ enabled extra_warnings && check_cflags -Winline
 check_ldflags -Wl,--warn-common
 check_ldflags $LDLATEFLAGS
 
-# not all compilers support -Os
-test "$optimize" = "small" && check_cflags -Os
-
-if enabled optimize; then
+if enabled small; then
+    check_cflags -Os            # not all compilers support -Os
+    optimize="small"
+elif enabled optimize; then
     if test -n "`$cc -v 2>&1 | grep xlc`"; then
         add_cflags  "-O5"
         add_ldflags "-O5"
@@ -1754,7 +1772,7 @@ if enabled gprof; then
     add_ldflags "-p"
 fi
 
-VHOOKCFLAGS="-fPIC `echo $CFLAGS | sed s/-mdynamic-no-pic//`"
+VHOOKCFLAGS="-fPIC"
 
 # find if .align arg is power-of-two or not
 if test $asmalign_pot = "unknown"; then
@@ -1774,10 +1792,10 @@ enabled_any $THREADS_LIST  && enable threads
 check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \
     $BSF_LIST $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST
 
+enabled libdc1394 && append pkg_requires "libraw1394"
 enabled libogg    && append pkg_requires "ogg >= 1.1"
 enabled libtheora && append pkg_requires "theora"
 enabled libvorbis && append pkg_requires "vorbis vorbisenc"
-enabled dc1394    && append pkg_requires "libraw1394"
 
 echo "install prefix            $PREFIX"
 echo "source path               $source_path"
@@ -1793,6 +1811,8 @@ if test $arch = "x86_32" -o $arch = "x86_64"; then
     echo "MMX enabled               ${mmx-no}"
     echo "CMOV enabled              ${cmov-no}"
     echo "CMOV is fast              ${fast_cmov-no}"
+    echo "EBX available             ${ebx_available-no}"
+    echo "EBP available             ${ebp_available-no}"
 fi
 if test $arch = "armv4l"; then
     echo "ARMv5TE enabled           ${armv5te-no}"
@@ -1834,6 +1854,7 @@ echo "liba52 support            ${liba52-no}"
 echo "liba52 dlopened           ${liba52bin-no}"
 echo "libamr-nb support         ${libamr_nb-no}"
 echo "libamr-wb support         ${libamr_wb-no}"
+echo "libdc1394 support         ${libdc1394-no}"
 echo "libfaac enabled           ${libfaac-no}"
 echo "libfaad enabled           ${libfaad-no}"
 echo "libfaad dlopened          ${libfaadbin-no}"
@@ -1846,7 +1867,7 @@ echo "libvorbis enabled         ${libvorbis-no}"
 echo "x264 enabled              ${libx264-no}"
 echo "XviD enabled              ${libxvid-no}"
 echo "zlib enabled              ${zlib-no}"
-if disabled gpl; then
+if ! enabled gpl; then
     echo "License: LGPL"
 else
     echo "License: GPL"
@@ -1859,12 +1880,12 @@ echo "/* Automatically generated by configure - do not modify! */" > $TMPH
 echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
 
 echo "PREFIX=$PREFIX" >> config.mak
-echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
-echo "libdir=\$(DESTDIR)$libdir" >> config.mak
-echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
-echo "incdir=\$(DESTDIR)$incdir" >> config.mak
-echo "bindir=\$(DESTDIR)$bindir" >> config.mak
-echo "mandir=\$(DESTDIR)$mandir" >> config.mak
+echo "prefix=\$(DESTDIR)\$(PREFIX)" >> config.mak
+echo "LIBDIR=\$(DESTDIR)$libdir" >> config.mak
+echo "SHLIBDIR=\$(DESTDIR)$shlibdir" >> config.mak
+echo "INCDIR=\$(DESTDIR)$incdir" >> config.mak
+echo "BINDIR=\$(DESTDIR)$bindir" >> config.mak
+echo "MANDIR=\$(DESTDIR)$mandir" >> config.mak
 echo "MAKE=$make" >> config.mak
 echo "CC=$cc" >> config.mak
 echo "AR=$ar" >> config.mak
@@ -1888,11 +1909,7 @@ echo "BUILD_STATIC=$static" >> config.mak
 echo "BUILDSUF=$BUILDSUF" >> config.mak
 echo "LIBPREF=$LIBPREF" >> config.mak
 echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
-if enabled static; then
-  echo "LIB=$LIB" >> config.mak
-else # Some Make complain if this variable does not exist.
-  echo "LIB=" >> config.mak
-fi
+echo "LIB=$LIB" >> config.mak
 echo "SLIBPREF=$SLIBPREF" >> config.mak
 echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
 echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
@@ -1954,15 +1971,10 @@ print_config CONFIG_ $TMPH config.mak $CONFIG_LIST   \
                                       $MUXER_LIST    \
                                       $PROTOCOL_LIST \
 
-if test "$targetos" = darwin; then
-  echo "#define CONFIG_DARWIN 1"  >> $TMPH
-fi
-
 echo "#define restrict $_restrict" >> $TMPH
 
-if test "$optimize" = "small"; then
-  echo "#define always_inline"  >> $TMPH
-  echo "#define CONFIG_SMALL 1" >> $TMPH
+if enabled small; then
+  echo "#define av_always_inline"  >> $TMPH
 fi
 
 echo "SRC_PATH=\"$source_path\"" >> config.mak
@@ -1990,31 +2002,32 @@ rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
 if enabled source_path_used; then
     DIRS="\
          doc \
-         libavformat \
          libavcodec \
          libavcodec/alpha \
          libavcodec/armv4l \
          libavcodec/bfin \
          libavcodec/i386 \
-         libavcodec/sparc \
          libavcodec/mlib \
          libavcodec/ppc \
-         libpostproc \
+         libavcodec/sh4 \
+         libavcodec/sparc \
+         libavformat \
          libavutil \
+         libpostproc \
          libswscale \
          tests \
+         tools \
          vhook \
          "
     FILES="\
           Makefile \
           common.mak \
-          libavformat/Makefile \
+          doc/texi2pod.pl \
           libavcodec/Makefile \
-          libpostproc/Makefile \
+          libavformat/Makefile \
           libavutil/Makefile \
+          libpostproc/Makefile \
           libswscale/Makefile \
-          vhook/Makefile \
-          doc/texi2pod.pl \
           "
     for dir in $DIRS ; do
             mkdir -p $dir