]> git.sesse.net Git - ffmpeg/blobdiff - configure
Add input and output devices to configure output.
[ffmpeg] / configure
index 43e66a5b57366a1d0c9b4408edc1be7a2defa2ff..f28dff3089aeaadee6e631ecdc3c0accdf37dd83 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]"
@@ -71,6 +71,7 @@ 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-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 "  --enable-pthreads        use pthreads [default=no]"
   echo "  --enable-w32threads      use Win32 threads [default=no]"
   echo "  --enable-x11grab         enable X11 grabbing [default=no]"
@@ -91,10 +92,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,7 +120,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-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]"
@@ -165,7 +164,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 ""
@@ -179,7 +178,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
 }
 
@@ -311,6 +310,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
 }
@@ -406,6 +410,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
@@ -427,7 +443,7 @@ EOF
 check_ldflags(){
     log check_ldflags "$@"
     check_ld "$@" <<EOF && add_ldflags "$@"
 check_ldflags(){
     log check_ldflags "$@"
     check_ld "$@" <<EOF && add_ldflags "$@"
-int main(){
+int main(void){
     return 0;
 }
 EOF
     return 0;
 }
 EOF
@@ -452,7 +468,7 @@ check_func(){
     disable $func
     check_ld "$@" <<EOF && enable $func
 extern int $func();
     disable $func
     check_ld "$@" <<EOF && enable $func
 extern int $func();
-int main(){
+int main(void){
     $func();
 }
 EOF
     $func();
 }
 EOF
@@ -471,7 +487,7 @@ check_func2(){
     done
     check_ld "$@" <<EOF && enable $func
 $incs
     done
     check_ld "$@" <<EOF && enable $func
 $incs
-int main(){
+int main(void){
     (void) $func;
     return 0;
 }
     (void) $func;
     return 0;
 }
@@ -520,7 +536,7 @@ check_exec_crash(){
 static void sighandler(int sig){
     raise(SIGTERM);
 }
 static void sighandler(int sig){
     raise(SIGTERM);
 }
-int main(){
+int main(void){
     signal(SIGILL, sighandler);
     signal(SIGFPE, sighandler);
     signal(SIGSEGV, sighandler);
     signal(SIGILL, sighandler);
     signal(SIGFPE, sighandler);
     signal(SIGSEGV, sighandler);
@@ -585,7 +601,6 @@ CONFIG_LIST="
     $COMPONENT_LIST
     avisynth
     beos_netserver
     $COMPONENT_LIST
     avisynth
     beos_netserver
-    bktr
     ffmpeg
     ffplay
     ffserver
     ffmpeg
     ffplay
     ffserver
@@ -605,7 +620,6 @@ CONFIG_LIST="
     libgsm
     libmp3lame
     libnut
     libgsm
     libmp3lame
     libnut
-    libogg
     libtheora
     libvorbis
     libx264
     libtheora
     libvorbis
     libx264
@@ -624,6 +638,7 @@ CONFIG_LIST="
 
 THREADS_LIST='
     beosthreads
 
 THREADS_LIST='
     beosthreads
+    os2threads
     pthreads
     w32threads
 '
     pthreads
     w32threads
 '
@@ -654,6 +669,7 @@ ARCH_EXT_LIST='
     mmi
     mmx
     ssse3
     mmi
     mmx
     ssse3
+    vis
 '
 
 HAVE_LIST="
 '
 
 HAVE_LIST="
@@ -709,6 +725,7 @@ CMDLINE_SELECT="
     $THREADS_LIST
     debug
     extra_warnings
     $THREADS_LIST
     debug
     extra_warnings
+    optimizations
     shared
     static
 "
     shared
     static
 "
@@ -723,6 +740,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"
@@ -749,36 +767,39 @@ 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"
 audio_beos_demuxer_deps="audio_beos"
 
 # demuxers / muxers
 ac3_demuxer_deps="ac3_parser"
 audio_beos_demuxer_deps="audio_beos"
+audio_beos_demuxer_extralibs="-lmedia -lbe"
 audio_beos_muxer_deps="audio_beos"
 audio_beos_muxer_deps="audio_beos"
-bktr_demuxer_deps="bktr"
+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"
 libdc1394_demuxer_deps="libdc1394"
 libnut_demuxer_deps="libnut"
 libnut_muxer_deps="libnut"
 mp3_demuxer_deps="mpegaudio_parser"
 dv1394_demuxer_deps="dv1394"
 libdc1394_demuxer_deps="libdc1394"
 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"
 oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
 oss_muxer_deps_any="soundcard_h sys_soundcard_h"
 redir_demuxer_deps="network"
@@ -787,7 +808,8 @@ rtsp_demuxer_deps="rtp_protocol rtp_muxer"
 sdp_demuxer_deps="rtsp_demuxer"
 v4l2_demuxer_deps="linux_videodev2_h"
 v4l_demuxer_deps="linux_videodev_h"
 sdp_demuxer_deps="rtsp_demuxer"
 v4l2_demuxer_deps="linux_videodev2_h"
 v4l_demuxer_deps="linux_videodev_h"
-x11_grab_device_demuxer_deps="x11grab"
+x11_grab_device_demuxer_deps="x11grab XShmCreateImage"
+x11_grab_device_demuxer_extralibs="-lX11 -lXext"
 
 # protocols
 http_protocol_deps="network"
 
 # protocols
 http_protocol_deps="network"
@@ -797,7 +819,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
@@ -817,7 +841,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
@@ -825,7 +849,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
@@ -835,6 +859,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`
@@ -843,24 +868,21 @@ cpu="generic"
 # OS
 targetos=$(tolower $(uname -s))
 
 # OS
 targetos=$(tolower $(uname -s))
 
-# non-library system interfaces
-bktr="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
@@ -871,28 +893,25 @@ 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:]]' &&
 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
+        die "Out of tree builds are impossible with whitespace in source path."
 fi
 
 FFMPEG_CONFIGURATION="$@"
 fi
 
 FFMPEG_CONFIGURATION="$@"
@@ -903,10 +922,20 @@ PARSER_LIST=`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' "$source_path/
 BSF_LIST=`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' "$source_path/libavcodec/allcodecs.c"`
 MUXER_LIST=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavformat/allformats.c"`
 DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavformat/allformats.c"`
 BSF_LIST=`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' "$source_path/libavcodec/allcodecs.c"`
 MUXER_LIST=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavformat/allformats.c"`
 DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavformat/allformats.c"`
+OUTDEV_LIST=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavdevice/alldevices.c"`
+INDEV_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavdevice/alldevices.c"`
 PROTOCOL_LIST=`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' "$source_path/libavformat/allformats.c"`
 
 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
+enable $ARCH_EXT_LIST \
+       $DECODER_LIST \
+       $ENCODER_LIST \
+       $PARSER_LIST \
+       $BSF_LIST \
+       $DEMUXER_LIST \
+       $MUXER_LIST \
+       $PROTOCOL_LIST \
+       $INDEV_LIST \
+       $OUTDEV_LIST \
 
 die_unknown(){
     echo "Unknown option \"$1\"."
 
 die_unknown(){
     echo "Unknown option \"$1\"."
@@ -915,292 +944,316 @@ 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
 }
 
 for opt do
     exit 0
 }
 
 for opt do
-  optval="${opt#*=}"
-  case "$opt" in
-  --log)
-  ;;
-  --log=*) logging="$optval"
-  ;;
-  --prefix=*) PREFIX="$optval"
-  ;;
-  --libdir=*) libdir="$optval"
-  ;;
-  --shlibdir=*) shlibdir="$optval"
-  ;;
-  --incdir=*) incdir="$optval"
-  ;;
-  --mandir=*) mandir="$optval"
-  ;;
-  --source-path=*) source_path="$optval"
-  ;;
-  --cross-prefix=*) cross_prefix="$optval"
-  ;;
-  --cross-compile) cross_compile="yes"
-  ;;
-  --target-os=*) targetos="$optval"
-  ;;
-  --cc=*) cc="$optval"
-  ;;
-  --make=*) make="$optval"
-  ;;
-  --extra-cflags=*) add_cflags "$optval"
-  ;;
-  --extra-ldflags=*) add_ldflags "$optval"
-  ;;
-  --extra-libs=*) add_extralibs "$optval"
-  ;;
-  --build-suffix=*) BUILDSUF="$optval"
-  ;;
-  --arch=*) arch="$optval"
-  ;;
-  --cpu=*) cpu="$optval"
-  ;;
-  --disable-opts) optimize="no"
-  ;;
-  --enable-sunmlib) mlib="yes"
-  ;;
-  --disable-strip) dostrip="no"
-  ;;
-  --disable-encoders) disable $ENCODER_LIST
-  ;;
-  --disable-decoders) disable $DECODER_LIST
-  ;;
-  --disable-muxers) disable $MUXER_LIST
-  ;;
-  --disable-demuxers) disable $DEMUXER_LIST
-  ;;
-  --disable-parsers) disable $PARSER_LIST
-  ;;
-  --disable-bsfs) disable $BSF_LIST
-  ;;
-  --disable-protocols) disable $PROTOCOL_LIST
-  ;;
-  --enable-*=*|--disable-*=*)
-  eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
-  case "$thing" in
-      encoder|decoder|muxer|demuxer|parser|bsf|protocol) $action ${optval}_${thing} ;;
-      *) die_unknown "$opt" ;;
-  esac
-  ;;
-  --enable-?*|--disable-?*)
-  eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
-  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
-  ;;
-  *)
-  die_unknown $opt
-  ;;
-  esac
+    optval="${opt#*=}"
+    case "$opt" in
+    --log)
+    ;;
+    --log=*) logging="$optval"
+    ;;
+    --prefix=*) PREFIX="$optval"
+    ;;
+    --libdir=*) libdir="$optval"
+    ;;
+    --shlibdir=*) shlibdir="$optval"
+    ;;
+    --incdir=*) incdir="$optval"
+    ;;
+    --mandir=*) mandir="$optval"
+    ;;
+    --source-path=*) source_path="$optval"
+    ;;
+    --cross-prefix=*) cross_prefix="$optval"
+    ;;
+    --cross-compile) enable cross_compile
+    ;;
+    --target-os=*) targetos="$optval"
+    ;;
+    --cc=*) cc="$optval"
+    ;;
+    --make=*) make="$optval"
+    ;;
+    --extra-cflags=*) add_cflags "$optval"
+    ;;
+    --extra-ldflags=*) add_ldflags "$optval"
+    ;;
+    --extra-libs=*) add_extralibs "$optval"
+    ;;
+    --build-suffix=*) BUILDSUF="$optval"
+    ;;
+    --arch=*) arch="$optval"
+    ;;
+    --cpu=*) cpu="$optval"
+    ;;
+    --enable-sunmlib) enable mlib
+    ;;
+    --disable-strip) disable dostrip
+    ;;
+    --disable-encoders) disable $ENCODER_LIST
+    ;;
+    --disable-decoders) disable $DECODER_LIST
+    ;;
+    --disable-muxers) disable $MUXER_LIST
+    ;;
+    --disable-demuxers) disable $DEMUXER_LIST
+    ;;
+    --disable-parsers) disable $PARSER_LIST
+    ;;
+    --disable-bsfs) disable $BSF_LIST
+    ;;
+    --disable-protocols) disable $PROTOCOL_LIST
+    ;;
+    --disable-devices) disable $INDEV_LIST $OUTDEV_LIST
+    ;;
+    --enable-*=*|--disable-*=*)
+    eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
+    case "$thing" in
+        encoder|decoder|muxer|demuxer|parser|bsf|protocol) $action ${optval}_${thing} ;;
+        *) die_unknown "$opt" ;;
+    esac
+    ;;
+    --enable-?*|--disable-?*)
+    eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
+    echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
+    $action $option
+    ;;
+    --list-*)
+        NAME="${opt#--list-}"
+        is_in $NAME $COMPONENT_LIST || die_unknown $opt
+        NAME=${NAME%s}
+        eval show_list $NAME \$$(toupper $NAME)_LIST
+    ;;
+    --help|-h) show_help
+    ;;
+    *)
+    die_unknown $opt
+    ;;
+    esac
 done
 
 case "$arch" in
 done
 
 case "$arch" in
-  i386|i486|i586|i686|i86pc|BePC)
-    arch="x86_32"
-    enable fast_unaligned
-  ;;
-  x86_64|amd64)
-    arch="x86_32"
-    enable fast_unaligned
-    canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
-    if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
-      if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
-        arch="x86_64"
+    i386|i486|i586|i686|i86pc|BePC)
+        arch="x86_32"
+        enable fast_unaligned
+    ;;
+    x86_64|amd64)
+        arch="x86_32"
+        enable fast_unaligned
+        canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
+        if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
+            if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
+                arch="x86_64"
+                enable fast_64bit
+            fi
+        fi
+    ;;
+    # armv4l is a subset of armv[567]*l
+    arm|armv[4567]*l)
+        arch="armv4l"
+    ;;
+    alpha)
+        arch="alpha"
         enable fast_64bit
         enable fast_64bit
-      fi
-    fi
-  ;;
-  # armv4l is a subset of armv[567]*l
-  arm|armv[4567]*l)
-    arch="armv4l"
-  ;;
-  alpha)
-    arch="alpha"
-    enable fast_64bit
-  ;;
-  "Power Macintosh"|ppc|powerpc)
-    arch="powerpc"
-  ;;
-  ppc64)
-    arch="powerpc"
-    enable fast_64bit
-  ;;
-  mips|mipsel|IP*)
-    arch="mips"
-  ;;
-  sun4u|sparc64)
-    arch="sparc64"
-    enable fast_64bit
-  ;;
-  sparc)
-    arch="sparc"
-  ;;
-  sh4)
-    arch="sh4"
-  ;;
-  parisc)
-    arch="parisc"
-  ;;
-  parisc64)
-    arch="parisc"
-    enable fast_64bit
-  ;;
-  s390|s390x)
-    arch="s390"
-  ;;
-  m68k)
-    arch="m68k"
-  ;;
-  ia64)
-    arch="ia64"
-    enable fast_64bit
-  ;;
-  bfin)
-    arch="bfin"
-  ;;
-  *)
-    arch="unknown"
-  ;;
-esac
-
-enable $arch
-enabled_any x86_32 x86_64 && enable x86
-enabled     sparc64       && enable sparc
-
-# OS specific
-osextralibs="-lm"
-case $targetos in
-  beos|haiku|zeta)
-    PREFIX="$HOME/config"
-    # helps building libavcodec
-    add_cflags "-DPIC -fomit-frame-pointer"
-    # 3 gcc releases known for BeOS, each with ugly bugs
-    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"
-        ;;
-      *20010315*) echo "BeBits gcc"
-        add_cflags "-fno-expensive-optimizations"
-        ;;
-    esac
-    LDCONFIG="echo ignoring ldconfig"
-    SHFLAGS=-nostart
-    # enable BeOS things
-    audio_beos="yes"
-    # 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"
-    else
-        beos_netserver="yes"
-        osextralibs="-lnet"
-    fi ;;
-  sunos)
-    FFSERVERLDFLAGS=""
-    SHFLAGS="-shared -Wl,-h,\$@"
-    add_extralibs "-lsocket -lnsl"
     ;;
     ;;
-  netbsd)
-    add_extralibs "-lossaudio"
+    "Power Macintosh"|ppc|powerpc)
+        arch="powerpc"
     ;;
     ;;
-  openbsd)
-    need_memalign="no"
-    LIBOBJFLAGS="\$(PIC)"
-    LDCONFIG="ldconfig -m \$(SHLIBDIR)"
-    SHFLAGS='-shared'
-    SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
-    SLIBNAME_WITH_VERSION='$(SLIBNAME)'
-    SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
-    add_extralibs "-lossaudio"
+    ppc64)
+        arch="powerpc"
+        enable fast_64bit
     ;;
     ;;
-  freebsd)
-    need_memalign="no"
-    add_cflags "-pthread"
+    mips|mipsel|IP*)
+        arch="mips"
     ;;
     ;;
-  gnu/kfreebsd)
-    add_cflags "-pthread"
+    sun4u|sparc64)
+        arch="sparc64"
+        enable fast_64bit
     ;;
     ;;
-  bsd/os)
-    osextralibs="-lpoll -lgnugetopt -lm"
-    strip="strip -d"
+    sparc)
+        arch="sparc"
     ;;
     ;;
-  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"
-    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"
-    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
-    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
-    FFSERVERLDFLAGS=-Wl,-bind_at_load
+    sh4)
+        arch="sh4"
     ;;
     ;;
-  mingw32*)
-    targetos=mingw32
-    shlibdir="$bindir"
-    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"
-    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"
+    parisc)
+        arch="parisc"
     ;;
     ;;
-  cygwin*)
-    targetos=cygwin
-    shlibdir="$bindir"
-    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"
-    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'
+    parisc64)
+        arch="parisc"
+        enable fast_64bit
     ;;
     ;;
-  linux)
-    LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
-    dv1394="yes"
+    s390|s390x)
+        arch="s390"
     ;;
     ;;
-  irix*)
-    targetos=irix
-    ranlib="echo ignoring ranlib"
+    m68k)
+        arch="m68k"
     ;;
     ;;
-  *)
-    targetos="${targetos}-UNKNOWN"
+    ia64)
+        arch="ia64"
+        enable fast_64bit
+    ;;
+    bfin)
+        arch="bfin"
+    ;;
+    *)
+        arch="unknown"
     ;;
 esac
 
     ;;
 esac
 
+enable $arch
+enabled_any x86_32 x86_64 && enable x86
+enabled     sparc64       && enable sparc
+
+# OS specific
+case $targetos in
+    beos|haiku|zeta)
+        PREFIX="$HOME/config"
+        # helps building libavcodec
+        add_cflags "-DPIC -fomit-frame-pointer"
+        # 3 gcc releases known for BeOS, each with ugly bugs
+        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"
+            disable mmx
+            ;;
+          *20010315*) echo "BeBits gcc"
+            add_cflags "-fno-expensive-optimizations"
+            ;;
+        esac
+        LDCONFIG="echo ignoring ldconfig"
+        SHFLAGS=-nostart
+        # enable BeOS things
+        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
+            network_extralibs="-lbind -lsocket"
+        else
+            enable beos_netserver
+            network_extralibs="-lnet"
+        fi ;;
+    sunos)
+        FFSERVERLDFLAGS=""
+        SHFLAGS='-shared -Wl,-h,$@'
+        network_extralibs="-lsocket -lnsl"
+        ;;
+    netbsd)
+        oss_demuxer_extralibs="-lossaudio"
+        oss_muxer_extralibs="-lossaudio"
+        ;;
+    openbsd)
+        disable need_memalign
+        LIBOBJFLAGS='$(PIC)'
+        LDCONFIG='ldconfig -m $(SHLIBDIR)'
+        SHFLAGS='-shared'
+        SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF).$(LIBVERSION)'
+        SLIBNAME_WITH_VERSION='$(SLIBNAME)'
+        SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
+        oss_demuxer_extralibs="-lossaudio"
+        oss_muxer_extralibs="-lossaudio"
+        ;;
+    freebsd)
+        disable need_memalign
+        ;;
+    bsd/os)
+        osextralibs="-lpoll -lgnugetopt"
+        strip="strip -d"
+        ;;
+    darwin)
+        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/$@'
+        strip="strip -x"
+        FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
+        SLIBSUF=".dylib"
+        SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
+        SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
+        FFSERVERLDFLAGS=-Wl,-bind_at_load
+        ;;
+    mingw32*)
+        targetos=mingw32
+        shlibdir="$bindir"
+        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
+        disable ffserver
+        SLIBPREF=""
+        SLIBSUF=".dll"
+        EXESUF=".exe"
+        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
+        shlibdir="$bindir"
+        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
+        EXESUF=".exe"
+        SLIBPREF="cyg"
+        SLIBSUF=".dll"
+        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"
+        enable dv1394
+        ;;
+    irix*)
+        targetos=irix
+        ranlib="echo ignoring ranlib"
+        ;;
+    os/2*)
+        ar="emxomfar -p256"
+        ranlib="echo ignoring ranlib"
+        strip="lxlite"
+        ln_s="cp -f"
+        add_cflags "-Zomf"
+        EXESUF=".exe"
+        FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap"
+        SHFLAGS='$(NAME).def -Zdll -Zomf'
+        FFSERVERLDFLAGS=""
+        LIBSUF="_s.lib"
+        SLIBPREF=""
+        SLIBSUF=".dll"
+        SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
+        SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
+        SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(NAME).def; \
+          echo PROTMODE >> $(NAME).def; \
+          echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(NAME).def; \
+          echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(NAME).def; \
+          echo EXPORTS >> $(NAME).def; \
+          emxexp -o $(OBJS) >> $(NAME).def'
+        SLIB_EXTRA_CMD='emximp -o $(LIBPREF)$(NAME)_dll.a $(NAME).def; \
+          emximp -o $(LIBPREF)$(NAME)_dll.lib $(NAME).def;'
+        SLIB_INSTALL_EXTRA_CMD='install -m 644 $(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"'
+        SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib'
+        vhook="no"
+        ;;
+
+    *)
+        targetos="${targetos}-UNKNOWN"
+        ;;
+esac
+
 add_extralibs $osextralibs
 
 if ! disabled logging ; then
 add_extralibs $osextralibs
 
 if ! disabled logging ; then
@@ -1214,7 +1267,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}"
@@ -1231,14 +1284,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
@@ -1247,7 +1293,7 @@ if enabled_any libfaad libfaadbin ; then
 #ifndef FAAD2_VERSION
 ok faad1
 #endif
 #ifndef FAAD2_VERSION
 ok faad1
 #endif
-int main( void ) { return 0; }
+int main(void) { return 0; }
 EOF
         test $? = 0 && enable libfaad2
     else
 EOF
         test $? = 0 && enable libfaad2
     else
@@ -1287,7 +1333,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
@@ -1332,19 +1378,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"
@@ -1353,8 +1399,11 @@ 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."
         ;;
     esac
 fi
         ;;
     esac
 fi
@@ -1384,7 +1433,7 @@ rm $TMPE
 
 # compiler sanity check
 check_exec <<EOF
 
 # compiler sanity check
 check_exec <<EOF
-int main(){
+int main(void){
     return 0;
 }
 EOF
     return 0;
 }
 EOF
@@ -1411,24 +1460,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];
@@ -1442,21 +1483,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;
@@ -1466,33 +1503,13 @@ 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 armv6 && check_cc <<EOF || disable armv6
-int main(void) {
-    __asm__ __volatile__ ("sadd16 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
 
 
-# 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
 
 # ---
 # big/little-endian test
@@ -1504,23 +1521,31 @@ grep -q BIGE $TMPO && enable bigendian
 # ---
 # check availability of some header files
 
 # ---
 # check availability of some header files
 
+if check_func dlopen; then
+    ldl=
+elif check_func dlopen -ldl; then
+    ldl=-ldl
+fi
+
+check_func  fork
+check_func  gethrtime
+check_func  getrusage
+check_func  inet_aton
+check_func  memalign
+check_func  mkstemp
+check_func2 windows.h GetProcessTimes
+
+check_header byteswap.h
+check_header conio.h
+check_header dlfcn.h
 check_header malloc.h
 check_header malloc.h
-check_func memalign
+check_header termios.h
 
 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
 
 
 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_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"
+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().
@@ -1546,40 +1571,39 @@ 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>
 #define _ISOC9X_SOURCE  1
 #include <math.h>
-int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
+int main(void) { return (lrintf(3.999f) > 0)?0:1; }
 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
 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 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 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 libx264    && require x264 x264.h x264_encoder_open -lx264
-enabled libxvid    && require Xvid xvid.h xvid_global -lxvidcore
-enabled mlib       && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
+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 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 mlib       && require  mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
 
 # 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
@@ -1591,27 +1615,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."
@@ -1623,16 +1630,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`
@@ -1641,9 +1646,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){
@@ -1667,7 +1672,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
@@ -1675,17 +1680,17 @@ 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 <netdb.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <netdb.h>
-int main( void ) {
-  struct sockaddr_storage saddr;
-  struct ipv6_mreq mreq6;
-  getaddrinfo(0,0,0,0);
-  getnameinfo(0,0,0,0,0,0,0);
-  IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
+int main(void) {
+    struct sockaddr_storage saddr;
+    struct ipv6_mreq mreq6;
+    getaddrinfo(0,0,0,0);
+    getnameinfo(0,0,0,0,0,0,0);
+    IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
 }
 EOF
 
 }
 EOF
 
@@ -1693,30 +1698,23 @@ check_header linux/videodev.h
 check_header linux/videodev2.h
 
 # check for ioctl_meteor.h, ioctl_bt848.h and alternatives
 check_header linux/videodev2.h
 
 # 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
 
 check_header sys/soundcard.h
 check_header soundcard.h
 
 
 check_header sys/soundcard.h
 check_header soundcard.h
 
-# Deal with the x11 frame grabber
+# deal with the X11 frame grabber
 enabled x11grab                         &&
 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
 
@@ -1733,11 +1731,12 @@ enabled extra_warnings && check_cflags -Winline
 # add some linker flags
 check_ldflags -Wl,--warn-common
 check_ldflags $LDLATEFLAGS
 # add some linker flags
 check_ldflags -Wl,--warn-common
 check_ldflags $LDLATEFLAGS
+check_ldflags -Wl,-Bsymbolic
 
 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"
@@ -1751,7 +1750,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
@@ -1763,28 +1762,38 @@ 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
 
 fi
 
-enabled_any $ENCODER_LIST  && enable encoders
-enabled_any $DECODER_LIST  && enable decoders
-enabled_any $MUXER_LIST    && enable muxers
-enabled_any $DEMUXER_LIST  && enable demuxers
-enabled_any $PROTOCOL_LIST && enable protocols
-enabled_any $BSF_LIST      && enable bsfs
-
-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_any $DECODER_LIST      && enable decoders
+enabled_any $ENCODER_LIST      && enable encoders
+enabled_any $BSF_LIST          && enable bsfs
+enabled_any $DEMUXER_LIST      && enable demuxers
+enabled_any $MUXER_LIST        && enable muxers
+enabled_any $INDEV_LIST        && enable demuxers
+enabled_any $OUTDEV_LIST       && enable muxers
+enabled_any $PROTOCOL_LIST     && enable protocols
+
+enabled_any $THREADS_LIST      && enable threads
+
+check_deps $CONFIG_LIST       \
+           $HAVE_LIST         \
+           $DECODER_LIST      \
+           $ENCODER_LIST      \
+           $PARSER_LIST       \
+           $BSF_LIST          \
+           $DEMUXER_LIST      \
+           $MUXER_LIST        \
+           $INDEV_LIST        \
+           $OUTDEV_LIST       \
+           $PROTOCOL_LIST     \
 
 enabled libdc1394 && append pkg_requires "libraw1394"
 
 enabled libdc1394 && append pkg_requires "libraw1394"
-enabled libogg    && append pkg_requires "ogg >= 1.1"
 enabled libtheora && append pkg_requires "theora"
 enabled libtheora && append pkg_requires "theora"
-enabled libvorbis && append pkg_requires "vorbis vorbisenc"
+enabled libvorbis && append pkg_requires "vorbisenc"
 
 echo "install prefix            $PREFIX"
 echo "source path               $source_path"
 
 echo "install prefix            $PREFIX"
 echo "source path               $source_path"
@@ -1818,7 +1827,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}"
@@ -1850,22 +1859,33 @@ echo "libfaad dlopened          ${libfaadbin-no}"
 echo "libgsm enabled            ${libgsm-no}"
 echo "libmp3lame enabled        ${libmp3lame-no}"
 echo "libnut enabled            ${libnut-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 indev outdev; 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
@@ -1879,16 +1899,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
@@ -1896,74 +1915,82 @@ 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
 
 if enabled bigendian; then
-  echo "WORDS_BIGENDIAN=yes" >> config.mak
-  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
+    echo "WORDS_BIGENDIAN=yes" >> config.mak
+    echo "#define WORDS_BIGENDIAN 1" >> $TMPH
 fi
 if enabled mmx; then
 fi
 if enabled mmx; then
-  echo "#define __CPU__ 586" >> $TMPH
+    echo "#define __CPU__ 586" >> $TMPH
 fi
 
 if enabled sdl; then
 fi
 
 if enabled sdl; then
-  echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
-  echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
+    echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
+    echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
 fi
 if enabled texi2html; then
 fi
 if enabled texi2html; then
-  echo "BUILD_DOC=yes" >> config.mak
+    echo "BUILD_DOC=yes" >> config.mak
 fi
 
 sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
 pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
 lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
 fi
 
 sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
 pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
 lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
+lavd_version=`grep '#define LIBAVDEVICE_VERSION ' "$source_path/libavdevice/avdevice.h" | sed 's/[^0-9\.]//g'`
 lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
 lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
 
 
 
 if enabled shared; then
 lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
 lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
 
 
 
 if enabled shared; then
-  echo "BUILD_SHARED=yes" >> config.mak
-  echo "PIC=-fPIC -DPIC" >> config.mak
-  echo "SPPMAJOR=${pp_version%%.*}" >> config.mak
-  echo "SPPVERSION=$pp_version" >> config.mak
-  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
-  echo "LAVCVERSION=$lavc_version" >> config.mak
-  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
-  echo "LAVFVERSION=$lavf_version" >> config.mak
-  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
-  echo "LAVUVERSION=$lavu_version" >> config.mak
-  echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
-  echo "SWSVERSION=$sws_version" >> config.mak
-  echo "SLIBNAME=${SLIBNAME}" >> config.mak
-  echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> 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 "BUILD_SHARED=yes" >> config.mak
+    echo "PIC=-fPIC -DPIC" >> config.mak
+    echo "SPPMAJOR=${pp_version%%.*}" >> config.mak
+    echo "SPPVERSION=$pp_version" >> config.mak
+    echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
+    echo "LAVCVERSION=$lavc_version" >> config.mak
+    echo "LAVDMAJOR=${lavd_version%%.*}" >> config.mak
+    echo "LAVDVERSION=$lavd_version" >> config.mak
+    echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
+    echo "LAVFVERSION=$lavf_version" >> config.mak
+    echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
+    echo "LAVUVERSION=$lavu_version" >> config.mak
+    echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
+    echo "SWSVERSION=$sws_version" >> config.mak
+    echo "SLIBNAME=${SLIBNAME}" >> config.mak
+    echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
+    echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
+    echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> 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
 
 print_config ARCH_   $TMPH config.mak $ARCH_LIST
 print_config HAVE_   $TMPH config.mak $HAVE_LIST
 fi
 echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
 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   \
-                                      $DECODER_LIST  \
-                                      $ENCODER_LIST  \
-                                      $PARSER_LIST   \
-                                      $BSF_LIST      \
-                                      $DEMUXER_LIST  \
-                                      $MUXER_LIST    \
-                                      $PROTOCOL_LIST \
+print_config CONFIG_ $TMPH config.mak $CONFIG_LIST       \
+                                      $DECODER_LIST      \
+                                      $ENCODER_LIST      \
+                                      $PARSER_LIST       \
+                                      $BSF_LIST          \
+                                      $DEMUXER_LIST      \
+                                      $MUXER_LIST        \
+                                      $PROTOCOL_LIST     \
+                                      $INDEV_LIST        \
+                                      $OUTDEV_LIST       \
 
 echo "#define restrict $_restrict" >> $TMPH
 
 if enabled small; then
 
 echo "#define restrict $_restrict" >> $TMPH
 
 if enabled small; then
-  echo "#define av_always_inline"  >> $TMPH
+    echo "#define av_always_inline"  >> $TMPH
 fi
 
 echo "SRC_PATH=\"$source_path\"" >> config.mak
 fi
 
 echo "SRC_PATH=\"$source_path\"" >> config.mak
@@ -1971,58 +1998,58 @@ 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
-  printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
-fi
+enabled asmalign_pot &&
+    printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH ||
+    printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
+
 
 
+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
 
 # build tree in object directory if source path is different from current one
 if enabled source_path_used; then
     DIRS="\
 
 rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
 
 # build tree in object directory if source path is different from current one
 if enabled source_path_used; then
     DIRS="\
-         doc \
-         libavcodec \
-         libavcodec/alpha \
-         libavcodec/armv4l \
-         libavcodec/bfin \
-         libavcodec/i386 \
-         libavcodec/mlib \
-         libavcodec/ppc \
-         libavcodec/sh4 \
-         libavcodec/sparc \
-         libavformat \
-         libavutil \
-         libpostproc \
-         libswscale \
-         tests \
-         tools \
-         vhook \
-         "
+        doc               \
+        libavcodec        \
+        libavcodec/alpha  \
+        libavcodec/armv4l \
+        libavcodec/bfin   \
+        libavcodec/i386   \
+        libavcodec/mlib   \
+        libavcodec/ppc    \
+        libavcodec/sh4    \
+        libavcodec/sparc  \
+        libavdevice       \
+        libavformat       \
+        libavutil         \
+        libpostproc       \
+        libswscale        \
+        tests             \
+        tools             \
+        vhook             \
+        "
     FILES="\
     FILES="\
-          Makefile \
-          common.mak \
-          doc/texi2pod.pl \
-          libavcodec/Makefile \
-          libavformat/Makefile \
-          libavutil/Makefile \
-          libpostproc/Makefile \
-          libswscale/Makefile \
-          "
+        Makefile             \
+        common.mak           \
+        doc/texi2pod.pl      \
+        libavcodec/Makefile  \
+        libavdevice/Makefile \
+        libavformat/Makefile \
+        libavutil/Makefile   \
+        libpostproc/Makefile \
+        libswscale/Makefile  \
+        "
     for dir in $DIRS ; do
     for dir in $DIRS ; do
-            mkdir -p $dir
+        mkdir -p $dir
     done
     for f in $FILES ; do
     done
     for f in $FILES ; do
-        ln -sf "$source_path/$f" $f
+        $ln_s "$source_path/$f" $f
     done
 fi
 
     done
 fi
 
@@ -2085,17 +2112,19 @@ pkgconfig_generate_uninstalled libavcodec "FFmpeg codec library" "$lavc_version"
 pkgconfig_generate libavformat "FFmpeg container format library" "$lavf_version" "-lavformat $extralibs" "$pkg_requires libavcodec = $lavc_version" ffmpeg
 pkgconfig_generate_uninstalled libavformat "FFmpeg container format library" "$lavf_version" "$extralibs" "$pkg_requires libavcodec = $lavc_version"
 
 pkgconfig_generate libavformat "FFmpeg container format library" "$lavf_version" "-lavformat $extralibs" "$pkg_requires libavcodec = $lavc_version" ffmpeg
 pkgconfig_generate_uninstalled libavformat "FFmpeg container format library" "$lavf_version" "$extralibs" "$pkg_requires libavcodec = $lavc_version"
 
+pkgconfig_generate libavdevice "FFmpeg device handling library" "$lavd_version" "-lavdevice $extralibs" "$pkg_requires libavformat = $lavf_version" ffmpeg
+pkgconfig_generate_uninstalled libavdevice "FFmpeg device handling library" "$lavd_version" "$extralibs" "$pkg_requires libavformat = $lavf_version"
 if enabled pp; then
 if enabled pp; then
-  pkgconfig_generate libpostproc "FFmpeg post processing library" "$pp_version" -lpostproc "" postproc
-  pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$pp_version"
+    pkgconfig_generate libpostproc "FFmpeg post processing library" "$pp_version" -lpostproc "" postproc
+    pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$pp_version"
 fi
 
 if enabled swscaler; then
 fi
 
 if enabled swscaler; then
-  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" -lswscale "libavutil = $lavu_version" ffmpeg
-  pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "libavutil = $lavu_version"
+    pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" -lswscale "libavutil = $lavu_version" ffmpeg
+    pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "libavutil = $lavu_version"
 else
 else
-  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" ffmpeg
-  pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version"
-  apply libswscale.pc sed s/^Libs:.*$/Libs:/
-  apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/
+    pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" ffmpeg
+    pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version"
+    apply libswscale.pc sed s/^Libs:.*$/Libs:/
+    apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/
 fi
 fi