]> git.sesse.net Git - ffmpeg/blobdiff - configure
Give better names to multicast functions (they are not IPv6-only)
[ffmpeg] / configure
index e244e4899a55f988c2b813e5076dd37149d7a5cd..e556be2763e30d340f3ba73a386837f68a8e0310 100755 (executable)
--- a/configure
+++ b/configure
@@ -61,7 +61,7 @@ show_help(){
   echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
   echo "  --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]"
   echo "  --incdir=DIR             install includes in DIR [PREFIX/include/ffmpeg]"
   echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
   echo "  --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]"
   echo "  --incdir=DIR             install includes in DIR [PREFIX/include/ffmpeg]"
-  echo "  --mandir=DIR             install man page in DIR [PREFIX/man]"
+  echo "  --mandir=DIR             install man page in DIR [PREFIX/share/man]"
   echo "  --enable-static          build static libraries [default=yes]"
   echo "  --disable-static         do not build static libraries [default=no]"
   echo "  --enable-shared          build shared libraries [default=no]"
   echo "  --enable-static          build static libraries [default=yes]"
   echo "  --disable-static         do not build static libraries [default=no]"
   echo "  --enable-shared          build shared libraries [default=no]"
@@ -77,13 +77,13 @@ show_help(){
   echo
   echo "External library support:"
   echo "  --enable-sunmlib         use Sun medialib [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-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      open libfaad.so.0 at runtime [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      open libfaad.so.0 at runtime [default=no]"
@@ -91,10 +91,9 @@ show_help(){
   echo "  --enable-libmp3lame      enable MP3 encoding via libmp3lame [default=no]"
   echo "  --enable-libnut          enable NUT (de)muxing via libnut,"
   echo "                           native demuxer exists [default=no]"
   echo "  --enable-libmp3lame      enable MP3 encoding via libmp3lame [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-libtheora       enable Theora encoding via libtheora [default=no]"
-  echo "  --enable-libvorbis       enable Vorbis en/decoding via libvorbis,"
-  echo "                           native implementations exist [default=no]"
+  echo "  --enable-libvorbis       enable Vorbis encoding via libvorbis,"
+  echo "                           native implementation exists [default=no]"
   echo "  --enable-libx264         enable H.264 encoding via x264 [default=no]"
   echo "  --enable-libxvid         enable Xvid encoding via xvidcore,"
   echo "                           native MPEG-4/Xvid encoder exists [default=no]"
   echo "  --enable-libx264         enable H.264 encoding via x264 [default=no]"
   echo "  --enable-libxvid         enable Xvid encoding via xvidcore,"
   echo "                           native MPEG-4/Xvid encoder exists [default=no]"
@@ -120,11 +119,6 @@ show_help(){
   echo "  --disable-armv6          disable armv6 usage"
   echo "  --disable-iwmmxt         disable iwmmxt usage"
   echo "  --disable-altivec        disable AltiVec usage"
   echo "  --disable-armv6          disable armv6 usage"
   echo "  --disable-iwmmxt         disable iwmmxt usage"
   echo "  --disable-altivec        disable AltiVec usage"
-  echo "  --disable-audio-oss      disable OSS audio support [default=no]"
-  echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
-  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-network        disable network support [default=no]"
   echo "  --disable-ipv6           disable ipv6 support [default=no]"
   echo "  --disable-zlib           disable zlib [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]"
@@ -169,7 +163,7 @@ show_help(){
   echo
   echo "Developer options (useful when working on FFmpeg itself):"
   echo "  --enable-gprof           enable profiling with gprof [$gprof]"
   echo
   echo "Developer options (useful when working on FFmpeg itself):"
   echo "  --enable-gprof           enable profiling with gprof [$gprof]"
-  echo "  --disable-opts           disable compiler optimizations"
+  echo "  --disable-optimizations  disable compiler optimizations"
   echo "  --enable-extra-warnings  enable more compiler warnings"
   echo "  --disable-strip          disable stripping of executables and shared libraries"
   echo ""
   echo "  --enable-extra-warnings  enable more compiler warnings"
   echo "  --disable-strip          disable stripping of executables and shared libraries"
   echo ""
@@ -183,7 +177,7 @@ log(){
 
 log_file(){
     log BEGIN $1
 
 log_file(){
     log BEGIN $1
-    cat -n $1 >>$logfile
+    pr -n -t $1 >>$logfile
     log END $1
 }
 
     log END $1
 }
 
@@ -315,6 +309,11 @@ check_deps(){
         enabled_all $dep_all || disable $cfg
         enabled_any $dep_any || disable $cfg
 
         enabled_all $dep_all || disable $cfg
         enabled_any $dep_any || disable $cfg
 
+        if enabled $cfg; then
+            eval dep_extralibs="\$${cfg}_extralibs"
+            test -n "$dep_extralibs" && add_extralibs $dep_extralibs
+        fi
+
         disable ${cfg}_checking
     done
 }
         disable ${cfg}_checking
     done
 }
@@ -410,6 +409,18 @@ check_cpp(){
     check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
 }
 
     check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
 }
 
+check_asm(){
+    log check_asm "$@"
+    name="$1"
+    asm="$2"
+    shift 2
+    check_cc "$@" <<EOF && enable $name || disable $name
+int foo(void){
+    asm volatile($asm);
+}
+EOF
+}
+
 check_ld(){
     log check_ld "$@"
     check_cc || return
 check_ld(){
     log check_ld "$@"
     check_cc || return
@@ -587,12 +598,8 @@ COMPONENT_LIST="
 
 CONFIG_LIST="
     $COMPONENT_LIST
 
 CONFIG_LIST="
     $COMPONENT_LIST
-    audio_beos
-    audio_oss
     avisynth
     beos_netserver
     avisynth
     beos_netserver
-    bktr
-    dc1394
     ffmpeg
     ffplay
     ffserver
     ffmpeg
     ffplay
     ffserver
@@ -605,13 +612,13 @@ CONFIG_LIST="
     libamr
     libamr_nb
     libamr_wb
     libamr
     libamr_nb
     libamr_wb
+    libdc1394
     libfaac
     libfaad
     libfaadbin
     libgsm
     libmp3lame
     libnut
     libfaac
     libfaad
     libfaadbin
     libgsm
     libmp3lame
     libnut
-    libogg
     libtheora
     libvorbis
     libx264
     libtheora
     libvorbis
     libx264
@@ -624,8 +631,6 @@ CONFIG_LIST="
     small
     swscaler
     vhook
     small
     swscaler
     vhook
-    v4l
-    v4l2
     x11grab
     zlib
 "
     x11grab
     zlib
 "
@@ -662,6 +667,7 @@ ARCH_EXT_LIST='
     mmi
     mmx
     ssse3
     mmi
     mmx
     ssse3
+    vis
 '
 
 HAVE_LIST="
 '
 
 HAVE_LIST="
@@ -717,6 +723,7 @@ CMDLINE_SELECT="
     $THREADS_LIST
     debug
     extra_warnings
     $THREADS_LIST
     debug
     extra_warnings
+    optimizations
     shared
     static
 "
     shared
     static
 "
@@ -731,6 +738,7 @@ iwmmxt_deps="armv4l"
 mmi_deps="mips"
 mmx_deps="x86"
 ssse3_deps="x86"
 mmi_deps="mips"
 mmx_deps="x86"
 ssse3_deps="x86"
+vis_deps="sparc"
 
 # decoders / encoders
 ac3_decoder_deps="gpl"
 
 # decoders / encoders
 ac3_decoder_deps="gpl"
@@ -757,43 +765,49 @@ zmbv_decoder_deps="zlib"
 zmbv_encoder_deps="zlib"
 
 # external libraries
 zmbv_encoder_deps="zlib"
 
 # external libraries
-mpeg4aac_decoder_deps="libfaad"
 liba52_decoder_deps="liba52"
 liba52_decoder_deps="liba52"
+liba52bin_decoder_extralibs='$ldl'
 libamr_nb_decoder_deps="libamr_nb"
 libamr_nb_encoder_deps="libamr_nb"
 libamr_wb_decoder_deps="libamr_wb"
 libamr_wb_encoder_deps="libamr_wb"
 libfaac_encoder_deps="libfaac"
 libfaad_decoder_deps="libfaad"
 libamr_nb_decoder_deps="libamr_nb"
 libamr_nb_encoder_deps="libamr_nb"
 libamr_wb_decoder_deps="libamr_wb"
 libamr_wb_encoder_deps="libamr_wb"
 libfaac_encoder_deps="libfaac"
 libfaad_decoder_deps="libfaad"
+libfaadbin_decoder_extralibs='$ldl'
 libgsm_decoder_deps="libgsm"
 libgsm_encoder_deps="libgsm"
 libgsm_ms_decoder_deps="libgsm"
 libgsm_ms_encoder_deps="libgsm"
 libmp3lame_encoder_deps="libmp3lame"
 libtheora_encoder_deps="libtheora"
 libgsm_decoder_deps="libgsm"
 libgsm_encoder_deps="libgsm"
 libgsm_ms_decoder_deps="libgsm"
 libgsm_ms_encoder_deps="libgsm"
 libmp3lame_encoder_deps="libmp3lame"
 libtheora_encoder_deps="libtheora"
-libvorbis_decoder_deps="libvorbis"
 libvorbis_encoder_deps="libvorbis"
 libx264_encoder_deps="libx264"
 libxvid_encoder_deps="libxvid"
 libvorbis_encoder_deps="libvorbis"
 libx264_encoder_deps="libx264"
 libxvid_encoder_deps="libxvid"
+mpeg4aac_decoder_deps="libfaad"
 
 # demuxers / muxers
 ac3_demuxer_deps="ac3_parser"
 
 # demuxers / muxers
 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"
+audio_beos_demuxer_deps="audio_beos"
+audio_beos_demuxer_extralibs="-lmedia -lbe"
+audio_beos_muxer_deps="audio_beos"
+audio_beos_muxer_extralibs="-lmedia -lbe"
+avisynth_demuxer_deps="avisynth"
+bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
 dv1394_demuxer_deps="dv1394"
 dv1394_demuxer_deps="dv1394"
+libdc1394_demuxer_deps="libdc1394"
 libnut_demuxer_deps="libnut"
 libnut_muxer_deps="libnut"
 mp3_demuxer_deps="mpegaudio_parser"
 libnut_demuxer_deps="libnut"
 libnut_muxer_deps="libnut"
 mp3_demuxer_deps="mpegaudio_parser"
-ogg_muxer_deps="libogg"
+oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
+oss_muxer_deps_any="soundcard_h sys_soundcard_h"
 redir_demuxer_deps="network"
 rtp_muxer_deps="network mpegts_demuxer"
 rtsp_demuxer_deps="rtp_protocol rtp_muxer"
 sdp_demuxer_deps="rtsp_demuxer"
 redir_demuxer_deps="network"
 rtp_muxer_deps="network mpegts_demuxer"
 rtsp_demuxer_deps="rtp_protocol rtp_muxer"
 sdp_demuxer_deps="rtsp_demuxer"
-v4l2_demuxer_deps="v4l2"
-video_grab_bktr_demuxer_deps="bktr"
-video_grab_v4l_demuxer_deps="v4l"
-x11_grab_device_demuxer_deps="x11grab"
+v4l2_demuxer_deps="linux_videodev2_h"
+v4l_demuxer_deps="linux_videodev_h"
+x11_grab_device_demuxer_deps="x11grab XShmCreateImage"
+x11_grab_device_demuxer_extralibs="-lX11 -lXext"
 
 # protocols
 http_protocol_deps="network"
 
 # protocols
 http_protocol_deps="network"
@@ -803,7 +817,9 @@ udp_protocol_deps="network"
 
 # programs
 ffplay_deps="sdl"
 
 # programs
 ffplay_deps="sdl"
-ffserver_deps="muxers rtp_protocol"
+ffserver_deps="ffm_muxer rtp_protocol rtsp_demuxer"
+ffserver_extralibs='$ldl'
+vhook_extralibs='$ldl'
 
 
 # set temporary file name
 
 
 # set temporary file name
@@ -823,7 +839,7 @@ TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
 
 # default parameters
 
 
 # default parameters
 
-logging="yes"
+enable logging
 logfile="config.err"
 
 # installation paths
 logfile="config.err"
 
 # installation paths
@@ -831,7 +847,7 @@ PREFIX="/usr/local"
 libdir='$(PREFIX)/lib'
 shlibdir="$libdir"
 incdir='$(PREFIX)/include/ffmpeg'
 libdir='$(PREFIX)/lib'
 shlibdir="$libdir"
 incdir='$(PREFIX)/include/ffmpeg'
-mandir='$(PREFIX)/man'
+mandir='$(PREFIX)/share/man'
 bindir='$(PREFIX)/bin'
 
 # toolchain
 bindir='$(PREFIX)/bin'
 
 # toolchain
@@ -841,6 +857,7 @@ ranlib="ranlib"
 make="make"
 strip="strip"
 asmalign_pot="unknown"
 make="make"
 strip="strip"
 asmalign_pot="unknown"
+ln_s="ln -sf"
 
 # machine
 arch=`uname -m`
 
 # machine
 arch=`uname -m`
@@ -849,27 +866,21 @@ cpu="generic"
 # OS
 targetos=$(tolower $(uname -s))
 
 # OS
 targetos=$(tolower $(uname -s))
 
-# non-library system interfaces
-audio_oss="yes"
-bktr="yes"
-v4l2="yes"
-v4l="yes"
-
 # libraries
 # libraries
-zlib="yes"
+enable zlib
 
 # configurable options
 
 # configurable options
-debug="yes"
-dostrip="yes"
-ffmpeg="yes"
-ffplay="yes"
-ffserver="yes"
-ipv6="yes"
-static="yes"
-mpegaudio_hp="yes"
-network="yes"
-optimize="yes"
-protocols="yes"
+enable debug
+enable dostrip
+enable ffmpeg
+enable ffplay
+enable ffserver
+enable ipv6
+enable static
+enable mpegaudio_hp
+enable network
+enable optimizations
+enable protocols
 vhook="default"
 
 # build settings
 vhook="default"
 
 # build settings
@@ -880,30 +891,27 @@ FFSERVERLDFLAGS=-Wl,-E
 LDCONFIG="ldconfig"
 LIBPREF="lib"
 LIBSUF=".a"
 LDCONFIG="ldconfig"
 LIBPREF="lib"
 LIBSUF=".a"
-LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
+FULLNAME='$(NAME)$(BUILDSUF)'
+LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)'
 SLIBPREF="lib"
 SLIBSUF=".so"
 SLIBPREF="lib"
 SLIBSUF=".so"
-SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
+SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
 SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
 SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
 SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
 SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
-LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIB)"'
+LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
 
 # find source path
 source_path="`dirname \"$0\"`"
 
 # find source path
 source_path="`dirname \"$0\"`"
-source_path_used="yes"
+enable source_path_used
 if test -z "$source_path" -o "$source_path" = "." ; then
     source_path="`pwd`"
 if test -z "$source_path" -o "$source_path" = "." ; then
     source_path="`pwd`"
-    source_path_used="no"
+    disable source_path_used
 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
 
 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
-    show_help
-fi
-
 FFMPEG_CONFIGURATION="$@"
 
 ENCODER_LIST=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
 FFMPEG_CONFIGURATION="$@"
 
 ENCODER_LIST=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
@@ -924,9 +932,9 @@ die_unknown(){
 }
 
 show_list() {
 }
 
 show_list() {
-    for part in $*; do
-        echo $part | sed 's/_[^_]*$//'
-    done | sort
+    suffix=_$1
+    shift
+    echo $* | sed s/$suffix//g | tr ' ' '\n' | sort
     exit 0
 }
 
     exit 0
 }
 
@@ -951,7 +959,7 @@ for opt do
   ;;
   --cross-prefix=*) cross_prefix="$optval"
   ;;
   ;;
   --cross-prefix=*) cross_prefix="$optval"
   ;;
-  --cross-compile) cross_compile="yes"
+  --cross-compile) enable cross_compile
   ;;
   --target-os=*) targetos="$optval"
   ;;
   ;;
   --target-os=*) targetos="$optval"
   ;;
@@ -971,11 +979,9 @@ for opt do
   ;;
   --cpu=*) cpu="$optval"
   ;;
   ;;
   --cpu=*) cpu="$optval"
   ;;
-  --disable-opts) optimize="no"
-  ;;
-  --enable-sunmlib) mlib="yes"
+  --enable-sunmlib) enable mlib
   ;;
   ;;
-  --disable-strip) dostrip="no"
+  --disable-strip) disable dostrip
   ;;
   --disable-encoders) disable $ENCODER_LIST
   ;;
   ;;
   --disable-encoders) disable $ENCODER_LIST
   ;;
@@ -1006,10 +1012,10 @@ for opt do
   --list-*)
     NAME="${opt#--list-}"
     is_in $NAME $COMPONENT_LIST || die_unknown $opt
   --list-*)
     NAME="${opt#--list-}"
     is_in $NAME $COMPONENT_LIST || die_unknown $opt
-    NAME=$(toupper ${NAME%s})
-    eval show_list \$${NAME}_LIST
+    NAME=${NAME%s}
+    eval show_list $NAME \$$(toupper $NAME)_LIST
   ;;
   ;;
-  --help) show_help
+  --help|-h) show_help
   ;;
   *)
   die_unknown $opt
   ;;
   *)
   die_unknown $opt
@@ -1091,7 +1097,6 @@ enabled_any x86_32 x86_64 && enable x86
 enabled     sparc64       && enable sparc
 
 # OS specific
 enabled     sparc64       && enable sparc
 
 # OS specific
-osextralibs="-lm"
 case $targetos in
   beos|haiku|zeta)
     PREFIX="$HOME/config"
 case $targetos in
   beos|haiku|zeta)
     PREFIX="$HOME/config"
@@ -1101,7 +1106,7 @@ case $targetos in
     gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
     case "$gcc_version" in
       2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
     gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
     case "$gcc_version" in
       2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
-        mmx="no"
+        disable mmx
         ;;
       *20010315*) echo "BeBits gcc"
         add_cflags "-fno-expensive-optimizations"
         ;;
       *20010315*) echo "BeBits gcc"
         add_cflags "-fno-expensive-optimizations"
@@ -1110,55 +1115,52 @@ case $targetos in
     LDCONFIG="echo ignoring ldconfig"
     SHFLAGS=-nostart
     # enable BeOS things
     LDCONFIG="echo ignoring ldconfig"
     SHFLAGS=-nostart
     # enable BeOS things
-    disabled audio_beos || enable_audio_beos
+    enable audio_beos
     # no need for libm, but the inet stuff
     # Check for BONE
     # XXX: actually should check for NOT net_server
     if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
     # no need for libm, but the inet stuff
     # Check for BONE
     # XXX: actually should check for NOT net_server
     if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
-        osextralibs="-lbind -lsocket"
+        network_extralibs="-lbind -lsocket"
     else
     else
-        beos_netserver="yes"
-        osextralibs="-lnet"
+        enable beos_netserver
+        network_extralibs="-lnet"
     fi ;;
   sunos)
     FFSERVERLDFLAGS=""
     fi ;;
   sunos)
     FFSERVERLDFLAGS=""
-    SHFLAGS="-shared -Wl,-h,\$@"
-    add_extralibs "-lsocket -lnsl"
+    SHFLAGS='-shared -Wl,-h,$@'
+    network_extralibs="-lsocket -lnsl"
     ;;
   netbsd)
     ;;
   netbsd)
-    add_extralibs "-lossaudio"
+    oss_demuxer_extralibs="-lossaudio"
+    oss_muxer_extralibs="-lossaudio"
     ;;
   openbsd)
     ;;
   openbsd)
-    need_memalign="no"
-    LIBOBJFLAGS="\$(PIC)"
-    LDCONFIG="ldconfig -m \$(SHLIBDIR)"
+    disable need_memalign
+    LIBOBJFLAGS='$(PIC)'
+    LDCONFIG='ldconfig -m $(SHLIBDIR)'
     SHFLAGS='-shared'
     SHFLAGS='-shared'
-    SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
+    SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF).$(LIBVERSION)'
     SLIBNAME_WITH_VERSION='$(SLIBNAME)'
     SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
     SLIBNAME_WITH_VERSION='$(SLIBNAME)'
     SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
-    add_extralibs "-lossaudio"
+    oss_demuxer_extralibs="-lossaudio"
+    oss_muxer_extralibs="-lossaudio"
     ;;
   freebsd)
     ;;
   freebsd)
-    need_memalign="no"
-    add_cflags "-pthread"
-    ;;
-  gnu/kfreebsd)
-    add_cflags "-pthread"
+    disable need_memalign
     ;;
   bsd/os)
     ;;
   bsd/os)
-    osextralibs="-lpoll -lgnugetopt -lm"
+    osextralibs="-lpoll -lgnugetopt"
     strip="strip -d"
     ;;
   darwin)
     strip="strip -d"
     ;;
   darwin)
-    need_memalign="no"
-    SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(SHLIBDIR)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
+    disable need_memalign
+    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/$@'
     VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@'
-    osextralibs=""
     strip="strip -x"
     FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
     SLIBSUF=".dylib"
     strip="strip -x"
     FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
     SLIBSUF=".dylib"
-    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
-    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
+    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
+    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
     FFSERVERLDFLAGS=-Wl,-bind_at_load
     ;;
   mingw32*)
     FFSERVERLDFLAGS=-Wl,-bind_at_load
     ;;
   mingw32*)
@@ -1170,15 +1172,16 @@ case $targetos in
         VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
         VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
     fi
         VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
         VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
     fi
-    ffserver="no"
+    disable ffserver
     SLIBPREF=""
     SLIBSUF=".dll"
     EXESUF=".exe"
     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)\""
-    SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base"
+    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
+    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(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:$(SLIBSUF)=.lib)"'
+    SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
+    SHFLAGS='-shared -Wl,--output-def,$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
     ;;
   cygwin*)
     targetos=cygwin
     ;;
   cygwin*)
     targetos=cygwin
@@ -1189,17 +1192,16 @@ case $targetos in
         VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
         VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
     fi
         VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
         VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
     fi
-    osextralibs=""
     EXESUF=".exe"
     SLIBPREF="cyg"
     SLIBSUF=".dll"
     EXESUF=".exe"
     SLIBPREF="cyg"
     SLIBSUF=".dll"
-    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
-    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
-    SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a -Wl,--enable-auto-image-base'
+    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
+    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
+    SHFLAGS='-shared -Wl,--enable-auto-image-base'
     ;;
   linux)
     LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
     ;;
   linux)
     LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
-    dv1394="yes"
+    enable dv1394
     ;;
   irix*)
     targetos=irix
     ;;
   irix*)
     targetos=irix
@@ -1223,7 +1225,7 @@ fi
 # Combine FFLDFLAGS and the LDFLAGS environment variable.
 LDFLAGS="$FFLDFLAGS $LDFLAGS"
 
 # Combine FFLDFLAGS and the LDFLAGS environment variable.
 LDFLAGS="$FFLDFLAGS $LDFLAGS"
 
-test -n "$cross_prefix" && cross_compile=yes
+test -n "$cross_prefix" && enable cross_compile
 cc="${cross_prefix}${cc}"
 ar="${cross_prefix}${ar}"
 ranlib="${cross_prefix}${ranlib}"
 cc="${cross_prefix}${cc}"
 ar="${cross_prefix}${ar}"
 ranlib="${cross_prefix}${ranlib}"
@@ -1240,14 +1242,7 @@ EOF
     exit 1;
 fi
 
     exit 1;
 fi
 
-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
+disabled static && LIBNAME=""
 
 if enabled_any libfaad libfaadbin ; then
     if check_header faad.h; then
 
 if enabled_any libfaad libfaadbin ; then
     if check_header faad.h; then
@@ -1296,7 +1291,7 @@ if test $targetos = darwin; then
     fi
 fi
 
     fi
 fi
 
-disabled optimize || add_cflags -fomit-frame-pointer
+disabled optimizations || add_cflags -fomit-frame-pointer
 
 # Add processor-specific flags
 if test $cpu != "generic"; then
 
 # Add processor-specific flags
 if test $cpu != "generic"; then
@@ -1341,19 +1336,19 @@ if test $cpu != "generic"; then
         # 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"
         # 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"
+            disable cmov
         ;;
         # 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|core2)
             add_cflags "-march=$cpu"
         ;;
         # 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|core2)
             add_cflags "-march=$cpu"
-            cmov="yes"
-            fast_cmov="yes"
+            enable cmov
+            enable fast_cmov
         ;;
         # targets that do support conditional mov but on which it's slow
         pentium4|prescott|nocona)
             add_cflags "-march=$cpu"
         ;;
         # targets that do support conditional mov but on which it's slow
         pentium4|prescott|nocona)
             add_cflags "-march=$cpu"
-            cmov="yes"
-            fast_cmov="no"
+            enable cmov
+            disable fast_cmov
         ;;
         sparc64)
             add_cflags "-mcpu=v9"
         ;;
         sparc64)
             add_cflags "-mcpu=v9"
@@ -1362,6 +1357,9 @@ if test $cpu != "generic"; then
             add_cflags "-mfdpic"
             add_ldflags "-mfdpic"
         ;;
             add_cflags "-mfdpic"
             add_ldflags "-mfdpic"
         ;;
+        arm*)
+            add_cflags "-mcpu=$cpu"
+        ;;
         *)
         echo "WARNING: Unknown CPU \"$cpu\", ignored."
         ;;
         *)
         echo "WARNING: Unknown CPU \"$cpu\", ignored."
         ;;
@@ -1420,24 +1418,16 @@ if enabled x86; then
 EOF
 
     # check wether EBX is available on x86
 EOF
 
     # check wether EBX is available on x86
-    check_cc <<EOF && enable ebx_available
-int main(){
-    asm volatile ("":::"%ebx");
-}
-EOF
+    check_asm ebx_available '"":::"%ebx"'
 
     # check whether binutils is new enough to compile SSSE3
 
     # check whether binutils is new enough to compile SSSE3
-    enabled ssse3 && check_cc <<EOF || disable ssse3
-int main(){
-    asm volatile ("pabsw %xmm0, %xmm0");
-}
-EOF
+    enabled ssse3 && check_asm ssse3 '"pabsw %xmm0, %xmm0"'
 fi
 
 # check for assembler specific support
 
 if test $arch = "powerpc"; then
 fi
 
 # check for assembler specific support
 
 if test $arch = "powerpc"; then
-check_cc <<EOF && dcbzl=yes
+check_cc <<EOF && enable dcbzl
 int main(void) {
     register long zero = 0;
     char data[1024];
 int main(void) {
     register long zero = 0;
     char data[1024];
@@ -1451,21 +1441,17 @@ fi
 
 # AltiVec flags: The FSF version of GCC differs from the Apple version
 if enabled altivec; then
 
 # AltiVec flags: The FSF version of GCC differs from the Apple version
 if enabled altivec; then
-    if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
-        add_cflags "-faltivec"
-    else
+    test -n "`$cc -v 2>&1 | grep version | grep Apple`" &&
+        add_cflags "-faltivec" ||
         add_cflags "-maltivec -mabi=altivec"
         add_cflags "-maltivec -mabi=altivec"
-    fi
 
     check_header altivec.h
 
     # check if our compiler supports Motorola AltiVec C API
 
     check_header altivec.h
 
     # check if our compiler supports Motorola AltiVec C API
-    if enabled altivec_h; then
-        inc_altivec_h="#include <altivec.h>"
-    else
+    enabled altivec_h &&
+        inc_altivec_h="#include <altivec.h>" ||
         inc_altivec_h=
         inc_altivec_h=
-    fi
-    check_cc <<EOF || altivec=no
+    check_cc <<EOF || disable altivec
 $inc_altivec_h
 int main(void) {
     vector signed int v1, v2, v3;
 $inc_altivec_h
 int main(void) {
     vector signed int v1, v2, v3;
@@ -1475,61 +1461,49 @@ int main(void) {
 EOF
 fi
 
 EOF
 fi
 
-# check armv5te instructions support
-enabled armv5te && check_cc <<EOF || disable armv5te
-int main(void) {
-    __asm__ __volatile__ ("qadd r0, r0, r0");
-}
-EOF
+enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"'
+enabled armv6   && check_asm armv6   '"sadd16 r0, r0, r0"'
+enabled iwmmxt  && check_asm iwmmxt  '"wunpckelub wr6, wr4"'
+enabled mmi     && check_asm mmi     '"lq $2, 0($2)"'
+enabled vis     && check_asm vis     '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc
 
 
-enabled armv6 && check_cc <<EOF || disable armv6
-int main(void) {
-    __asm__ __volatile__ ("sadd16 r0, r0, r0");
-}
-EOF
-
-# check iwmmxt support
-enabled iwmmxt && check_cc <<EOF || disable iwmmxt
-int main(void) {
-    __asm__ __volatile__ ("wunpckelub wr6, wr4");
-}
-EOF
-
-# check if our compiler supports mmi
-enabled mmi && check_cc <<EOF || mmi="no"
-int main(void) {
-    __asm__ ("lq \$2, 0(\$2)");
-    return 0;
-}
-EOF
+enabled vis && add_cflags "-mcpu=ultrasparc -mtune=ultrasparc"
 
 # ---
 # big/little-endian test
 check_cc <<EOF || die "endian test failed"
 unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
 EOF
 
 # ---
 # big/little-endian test
 check_cc <<EOF || die "endian test failed"
 unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
 EOF
-strings -a $TMPO | grep -q BIGE && enable bigendian
+grep -q BIGE $TMPO && enable bigendian
 
 # ---
 # check availability of some header files
 
 
 # ---
 # check availability of some header files
 
-check_header malloc.h
-check_func memalign
-
-if ! enabled_any memalign memalign_hack && enabled need_memalign ; then
-    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
+if check_func dlopen; then
+    ldl=
+elif check_func dlopen -ldl; then
+    ldl=-ldl
 fi
 
 fi
 
-check_header byteswap.h
-
-check_func mkstemp
+check_func fork
 check_func gethrtime
 check_func gethrtime
+check_func getrusage
+check_func inet_aton
+check_func memalign
+check_func mkstemp
+check_func2 windows.h GetProcessTimes
 
 
-check_header termios.h
+check_header byteswap.h
 check_header conio.h
 check_header conio.h
+check_header dlfcn.h
+check_header malloc.h
+check_header termios.h
 
 
-check_func inet_aton
-enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
+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
 
 # ffserver uses poll(),
 # if it's not found we can emulate it using select().
 
 # ffserver uses poll(),
 # if it's not found we can emulate it using select().
@@ -1555,16 +1529,16 @@ fi
 
 for thread in $THREADS_LIST; do
     if enabled $thread; then
 
 for thread in $THREADS_LIST; do
     if enabled $thread; then
-        if test -n "$thread_type"; then
-            die "ERROR: Only one thread type must be selected."
-        else
+        test -n "$thread_type" &&
+            die "ERROR: Only one thread type must be selected." ||
             thread_type="$thread"
             thread_type="$thread"
-        fi
     fi
 done
 
     fi
 done
 
+check_lib math.h sin -lm
+
 # test for lrintf in math.h
 # test for lrintf in math.h
-check_exec <<EOF && lrintf=yes || lrintf=no
+check_exec <<EOF && enable lrintf || disable lrintf
 #define _ISOC9X_SOURCE  1
 #include <math.h>
 int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
 #define _ISOC9X_SOURCE  1
 #include <math.h>
 int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
@@ -1573,22 +1547,21 @@ EOF
 enabled_any libamr_nb libamr_wb && enable libamr
 
 # these are off by default, so fail if requested and not available
 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 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 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 libnut     && require libnut libnut.h nut_demuxer_init -lnut
+enabled libtheora  && require libtheora theora/theora.h theora_info_init -ltheora -logg
+enabled libvorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
 enabled libx264    && require x264 x264.h x264_encoder_open -lx264
 enabled libxvid    && require Xvid xvid.h xvid_global -lxvidcore
 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 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
 
 # disable the native AC-3 decoder if liba52 is enabled
 enabled liba52 && disable ac3_decoder
@@ -1600,27 +1573,10 @@ void foo(char * $restrict_keyword p);
 EOF
 done
 
 EOF
 done
 
-# dlopen/dlfcn.h probing
-
-check_header dlfcn.h
-
-if check_func dlopen; then
-    ldl=
-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"
 
 test "$vhook" = "default" && vhook="$dlopen"
 
-enabled_any vhook liba52bin libfaadbin ffserver && add_extralibs $ldl
-
 if test "$targetos" = cygwin -o "$targetos" = mingw32 && enabled_all static vhook ; then
 if test "$targetos" = cygwin -o "$targetos" = mingw32 && enabled_all static vhook ; then
-    vhook="no"
+    disable vhook
     echo
     echo "At the moment vhooks don't work on Cygwin or MinGW static builds."
     echo "Patches welcome."
     echo
     echo "At the moment vhooks don't work on Cygwin or MinGW static builds."
     echo "Patches welcome."
@@ -1632,16 +1588,14 @@ if enabled vhook; then
     check_ldflags -export-dynamic
 fi
 
     check_ldflags -export-dynamic
 fi
 
-enabled audio_beos && add_extralibs "-lmedia -lbe"
-
 check_foo_config imlib2 imlib2 Imlib2.h imlib_load_font
 check_foo_config freetype2 freetype ft2build.h FT_Init_FreeType
 
 ##########################################
 # SDL check
 
 check_foo_config imlib2 imlib2 Imlib2.h imlib_load_font
 check_foo_config freetype2 freetype ft2build.h FT_Init_FreeType
 
 ##########################################
 # SDL check
 
-sdl_too_old=no
-sdl=no
+disable sdl_too_old
+disable sdl
 SDL_CONFIG="${cross_prefix}sdl-config"
 if "${SDL_CONFIG}" --version >/dev/null 2>&1; then
     sdl_cflags=`"${SDL_CONFIG}" --cflags`
 SDL_CONFIG="${cross_prefix}sdl-config"
 if "${SDL_CONFIG}" --version >/dev/null 2>&1; then
     sdl_cflags=`"${SDL_CONFIG}" --cflags`
@@ -1650,9 +1604,9 @@ if "${SDL_CONFIG}" --version >/dev/null 2>&1; then
     if check_lib SDL.h SDL_Init; then
         _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
         if test "$_sdlversion" -lt 121 ; then
     if check_lib SDL.h SDL_Init; then
         _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
         if test "$_sdlversion" -lt 121 ; then
-            sdl_too_old=yes
+            enable sdl_too_old
         else
         else
-            sdl=yes
+            enable sdl
             check_cc $sdl_cflags <<EOF && enable sdl_video_size
 #include <SDL.h>
 int main(void){
             check_cc $sdl_cflags <<EOF && enable sdl_video_size
 #include <SDL.h>
 int main(void){
@@ -1676,7 +1630,7 @@ if enabled network; then
     if check_header arpa/inet.h ; then
         check_func closesocket
     elif check_header winsock2.h ; then
     if check_header arpa/inet.h ; then
         check_func closesocket
     elif check_header winsock2.h ; then
-        add_extralibs -lws2_32
+        network_extralibs="-lws2_32"
         check_func2 winsock2.h closesocket
     fi
 fi
         check_func2 winsock2.h closesocket
     fi
 fi
@@ -1684,7 +1638,7 @@ fi
 ##########################################
 # IPv6 check
 
 ##########################################
 # IPv6 check
 
-enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
+enabled network && enabled ipv6 && check_ld <<EOF && enable ipv6 || disable ipv6
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
@@ -1698,36 +1652,27 @@ int main( void ) {
 }
 EOF
 
 }
 EOF
 
-enabled v4l  && check_header linux/videodev.h  || disable v4l
-enabled v4l2 && check_header linux/videodev2.h || disable v4l2
+check_header linux/videodev.h
+check_header linux/videodev2.h
 
 # check for ioctl_meteor.h, ioctl_bt848.h and alternatives
 
 # check for ioctl_meteor.h, ioctl_bt848.h and alternatives
-if enabled bktr; then
-    { check_header dev/bktr/ioctl_meteor.h &&
-      check_header dev/bktr/ioctl_bt848.h; } ||
-    { check_header machine/ioctl_meteor.h &&
-      check_header machine/ioctl_bt848.h; } ||
-    { check_header dev/video/meteor/ioctl_meteor.h &&
-      check_header dev/video/bktr/ioctl_bt848.h; } ||
-    check_header dev/ic/bt8xx.h ||
-    disable bktr
-fi
+{ check_header dev/bktr/ioctl_meteor.h &&
+  check_header dev/bktr/ioctl_bt848.h; } ||
+{ check_header machine/ioctl_meteor.h &&
+  check_header machine/ioctl_bt848.h; } ||
+{ check_header dev/video/meteor/ioctl_meteor.h &&
+  check_header dev/video/bktr/ioctl_bt848.h; } ||
+check_header dev/ic/bt8xx.h
 
 
-enabled audio_oss &&
-    check_header sys/soundcard.h ||
-    check_header soundcard.h ||
-    disable audio_oss
+check_header sys/soundcard.h
+check_header soundcard.h
 
 # Deal with the x11 frame grabber
 enabled x11grab                         &&
 
 # Deal with the x11 frame grabber
 enabled x11grab                         &&
-enabled gpl                             &&
-enabled x11_grab_device_demuxer         &&
 check_header X11/Xlib.h                 &&
 check_header X11/extensions/XShm.h      &&
 check_func XOpenDisplay -lX11           &&
 check_header X11/Xlib.h                 &&
 check_header X11/extensions/XShm.h      &&
 check_func XOpenDisplay -lX11           &&
-check_func XShmCreateImage -lX11 -lXext &&
-add_extralibs -lX11 -lXext              ||
-disable x11_grab_device_demuxer
+check_func XShmCreateImage -lX11 -lXext
 
 enabled debug && add_cflags -g
 
 
 enabled debug && add_cflags -g
 
@@ -1747,8 +1692,8 @@ check_ldflags $LDLATEFLAGS
 
 if enabled small; then
     check_cflags -Os            # not all compilers support -Os
 
 if enabled small; then
     check_cflags -Os            # not all compilers support -Os
-    optimize="small"
-elif enabled optimize; then
+    optimizations="small"
+elif enabled optimizations; then
     if test -n "`$cc -v 2>&1 | grep xlc`"; then
         add_cflags  "-O5"
         add_ldflags "-O5"
     if test -n "`$cc -v 2>&1 | grep xlc`"; then
         add_cflags  "-O5"
         add_ldflags "-O5"
@@ -1762,7 +1707,7 @@ if enabled shared; then
     # LIBOBJFLAGS may have already been set in the OS configuration
     if test -z "$LIBOBJFLAGS" ; then
         case "$arch" in
     # LIBOBJFLAGS may have already been set in the OS configuration
     if test -z "$LIBOBJFLAGS" ; then
         case "$arch" in
-            x86_64|ia64|alpha|sparc*|power*) LIBOBJFLAGS="\$(PIC)" ;;
+            x86_64|ia64|alpha|sparc*|power*) LIBOBJFLAGS='$(PIC)' ;;
         esac
     fi
 fi
         esac
     fi
 fi
@@ -1774,10 +1719,10 @@ fi
 
 VHOOKCFLAGS="-fPIC"
 
 
 VHOOKCFLAGS="-fPIC"
 
-# find if .align arg is power-of-two or not
+# Find out if the .align argument is a power of two or not.
 if test $asmalign_pot = "unknown"; then
 if test $asmalign_pot = "unknown"; then
-    asmalign_pot="no"
-    echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
+    disable asmalign_pot
+    echo 'asm (".align 3");' | check_cc && enable asmalign_pot
 fi
 
 enabled_any $ENCODER_LIST  && enable encoders
 fi
 
 enabled_any $ENCODER_LIST  && enable encoders
@@ -1792,10 +1737,9 @@ 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
 
 check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \
     $BSF_LIST $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST
 
-enabled libogg    && append pkg_requires "ogg >= 1.1"
+enabled libdc1394 && append pkg_requires "libraw1394"
 enabled libtheora && append pkg_requires "theora"
 enabled libtheora && append pkg_requires "theora"
-enabled libvorbis && append pkg_requires "vorbis vorbisenc"
-enabled dc1394    && append pkg_requires "libraw1394"
+enabled libvorbis && append pkg_requires "vorbisenc"
 
 echo "install prefix            $PREFIX"
 echo "source path               $source_path"
 
 echo "install prefix            $PREFIX"
 echo "source path               $source_path"
@@ -1811,6 +1755,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 "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}"
 fi
 if test $arch = "armv4l"; then
     echo "ARMv5TE enabled           ${armv5te-no}"
@@ -1827,7 +1773,7 @@ fi
 echo "gprof enabled             ${gprof-no}"
 echo "debug symbols             ${debug-no}"
 echo "strip symbols             ${dostrip-no}"
 echo "gprof enabled             ${gprof-no}"
 echo "debug symbols             ${debug-no}"
 echo "strip symbols             ${dostrip-no}"
-echo "optimize                  ${optimize-no}"
+echo "optimizations             ${optimizations-no}"
 echo "static                    ${static-no}"
 echo "shared                    ${shared-no}"
 echo "postprocessing support    ${pp-no}"
 echo "static                    ${static-no}"
 echo "shared                    ${shared-no}"
 echo "postprocessing support    ${pp-no}"
@@ -1852,28 +1798,40 @@ 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 "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}"
 echo "libgsm enabled            ${libgsm-no}"
 echo "libmp3lame enabled        ${libmp3lame-no}"
 echo "libnut enabled            ${libnut-no}"
 echo "libfaac enabled           ${libfaac-no}"
 echo "libfaad enabled           ${libfaad-no}"
 echo "libfaad dlopened          ${libfaadbin-no}"
 echo "libgsm enabled            ${libgsm-no}"
 echo "libmp3lame enabled        ${libmp3lame-no}"
 echo "libnut enabled            ${libnut-no}"
-echo "libogg enabled            ${libogg-no}"
 echo "libtheora enabled         ${libtheora-no}"
 echo "libvorbis enabled         ${libvorbis-no}"
 echo "x264 enabled              ${libx264-no}"
 echo "XviD enabled              ${libxvid-no}"
 echo "zlib enabled              ${zlib-no}"
 echo "libtheora enabled         ${libtheora-no}"
 echo "libvorbis enabled         ${libvorbis-no}"
 echo "x264 enabled              ${libx264-no}"
 echo "XviD enabled              ${libxvid-no}"
 echo "zlib enabled              ${zlib-no}"
-if ! enabled gpl; then
+enabled gpl &&
+    echo "License: GPL" ||
     echo "License: LGPL"
     echo "License: LGPL"
-else
-    echo "License: GPL"
-fi
+
+for type in decoder encoder parser demuxer muxer protocol bsf; do
+    echo "Enabled ${type}s:"
+    ucname="\$`toupper $type`_LIST"
+    list="`eval echo $ucname`"
+    partlist=""
+    for part in $list; do
+        enabled $part && partlist="$partlist $part"
+    done
+    partlist=`echo $partlist | sed s/_$type//g | tr ' ' '\n' | sort`
+    echo $partlist
+done
 
 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 "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 "#ifndef FFMPEG_CONFIG_H" >> $TMPH
+echo "#define FFMPEG_CONFIG_H" >> $TMPH
 echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
 
 echo "PREFIX=$PREFIX" >> config.mak
 echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
 
 echo "PREFIX=$PREFIX" >> config.mak
@@ -1887,16 +1845,15 @@ echo "MAKE=$make" >> config.mak
 echo "CC=$cc" >> config.mak
 echo "AR=$ar" >> config.mak
 echo "RANLIB=$ranlib" >> config.mak
 echo "CC=$cc" >> config.mak
 echo "AR=$ar" >> config.mak
 echo "RANLIB=$ranlib" >> config.mak
-if enabled dostrip; then
-    echo "STRIP=$strip" >> config.mak
-else
+echo "LDCONFIG=$LDCONFIG" >> config.mak
+echo "LN_S=$ln_s" >> config.mak
+enabled dostrip &&
+    echo "STRIP=$strip" >> config.mak ||
     echo "STRIP=echo ignoring strip" >> config.mak
     echo "STRIP=echo ignoring strip" >> config.mak
-fi
 
 echo "OPTFLAGS=$CFLAGS" >> config.mak
 echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
 echo "LDFLAGS=$LDFLAGS" >> config.mak
 
 echo "OPTFLAGS=$CFLAGS" >> config.mak
 echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
 echo "LDFLAGS=$LDFLAGS" >> config.mak
-echo "LDCONFIG=$LDCONFIG" >> config.mak
 echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
 echo "SHFLAGS=$SHFLAGS" >> config.mak
 echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
 echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
 echo "SHFLAGS=$SHFLAGS" >> config.mak
 echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
@@ -1904,12 +1861,13 @@ echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
 echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
 echo "BUILD_STATIC=$static" >> config.mak
 echo "BUILDSUF=$BUILDSUF" >> config.mak
 echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
 echo "BUILD_STATIC=$static" >> config.mak
 echo "BUILDSUF=$BUILDSUF" >> config.mak
+echo "FULLNAME=$FULLNAME" >> config.mak
 echo "LIBPREF=$LIBPREF" >> config.mak
 echo "LIBPREF=$LIBPREF" >> config.mak
-echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
-echo "LIB=$LIB" >> config.mak
+echo "LIBSUF=$LIBSUF" >> config.mak
+echo "LIBNAME=$LIBNAME" >> config.mak
 echo "SLIBPREF=$SLIBPREF" >> config.mak
 echo "SLIBPREF=$SLIBPREF" >> config.mak
-echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
-echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
+echo "SLIBSUF=$SLIBSUF" >> config.mak
+echo "EXESUF=$EXESUF" >> config.mak
 
 if enabled bigendian; then
   echo "WORDS_BIGENDIAN=yes" >> config.mak
 
 if enabled bigendian; then
   echo "WORDS_BIGENDIAN=yes" >> config.mak
@@ -1953,6 +1911,7 @@ if enabled shared; then
   echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
   echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
   echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
   echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
   echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
   echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
+  echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak
 fi
 echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
 echo "EXTRALIBS=$extralibs" >> config.mak
 fi
 echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
 echo "EXTRALIBS=$extralibs" >> config.mak
@@ -1968,10 +1927,6 @@ print_config CONFIG_ $TMPH config.mak $CONFIG_LIST   \
                                       $MUXER_LIST    \
                                       $PROTOCOL_LIST \
 
                                       $MUXER_LIST    \
                                       $PROTOCOL_LIST \
 
-if test "$targetos" = darwin; then
-  echo "#define SYS_DARWIN 1"  >> $TMPH
-fi
-
 echo "#define restrict $_restrict" >> $TMPH
 
 if enabled small; then
 echo "#define restrict $_restrict" >> $TMPH
 
 if enabled small; then
@@ -1983,19 +1938,17 @@ echo "SRC_PATH_BARE=$source_path" >> config.mak
 echo "BUILD_ROOT=\"$PWD\"" >> config.mak
 
 # Apparently it's not possible to portably echo a backslash.
 echo "BUILD_ROOT=\"$PWD\"" >> config.mak
 
 # Apparently it's not possible to portably echo a backslash.
-if enabled asmalign_pot; then
-  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
-else
+enabled asmalign_pot &&
+  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH ||
   printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
   printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
-fi
 
 
 
 
+echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
+
 # Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
 # Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
-if ! cmp -s $TMPH config.h; then
-        mv -f $TMPH config.h
-else
-        echo "config.h is unchanged"
-fi
+cmp -s $TMPH config.h &&
+    echo "config.h is unchanged" ||
+    mv -f $TMPH config.h
 
 rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
 
 
 rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
 
@@ -2034,7 +1987,7 @@ if enabled source_path_used; then
             mkdir -p $dir
     done
     for f in $FILES ; do
             mkdir -p $dir
     done
     for f in $FILES ; do
-        ln -sf "$source_path/$f" $f
+        $ln_s "$source_path/$f" $f
     done
 fi
 
     done
 fi