]> git.sesse.net Git - ffmpeg/blobdiff - configure
Make vhook build non-recursive.
[ffmpeg] / configure
index ca509803808abb32595af944dab3a0ee2c7e3c0e..31ebe590efaefce356bb27c7fee3dda2b0722d8c 100755 (executable)
--- a/configure
+++ b/configure
@@ -62,7 +62,6 @@ show_help(){
   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 "  --enable-mingwce         enable MinGW native/cross WinCE compile"
   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]"
@@ -84,10 +83,11 @@ show_help(){
   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-libdts          enable GPLed libdts support [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-libfaac         enable FAAC support via libfaac [default=no]"
   echo "  --enable-libfaad         enable FAAD support via libfaad [default=no]"
-  echo "  --enable-libfaadbin      build FAAD support with runtime linking [default=no]"
+  echo "  --enable-libfaadbin      open libfaad.so.0 at runtime [default=no]"
   echo "  --enable-libgsm          enable GSM support via libgsm [default=no]"
   echo "  --enable-libmp3lame      enable MP3 encoding via libmp3lame [default=no]"
   echo "  --enable-libnut          enable NUT (de)muxing via libnut,"
@@ -96,13 +96,9 @@ show_help(){
   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-x264            enable H.264 encoding via x264 [default=no]"
-  echo "  --enable-xvid            enable Xvid encoding via xvidcore,"
+  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-amr_nb          enable amr_nb float audio codec"
-  echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
-  echo "  --enable-amr_wb          enable amr_wb float audio codec"
-  echo "  --enable-amr_if2         enable amr_wb IF2 audio codec"
   echo ""
   echo "Advanced options (experts only):"
   echo "  --source-path=PATH       path to source code [$source_path]"
@@ -138,7 +134,6 @@ show_help(){
   echo "  --disable-debug          disable debugging symbols"
   echo "  --disable-mpegaudio-hp   faster (but less accurate)"
   echo "                           MPEG audio decoding [default=no]"
-  echo "  --disable-protocols      disable I/O protocols support [default=no]"
   echo "  --disable-ffmpeg         disable ffmpeg build"
   echo "  --disable-ffserver       disable ffserver build"
   echo "  --disable-ffplay         disable ffplay build"
@@ -159,6 +154,12 @@ show_help(){
   echo "  --enable-parser=NAME     enables parser NAME"
   echo "  --disable-parser=NAME    disables parser NAME"
   echo "  --disable-parsers        disables all parsers"
+  echo "  --enable-bsf=NAME        enables bitstream filter NAME"
+  echo "  --disable-bsf=NAME       disables bitstream filter NAME"
+  echo "  --disable-bsfs           disables all bitstream filters"
+  echo "  --enable-protocol=NAME   enables protocol NAME"
+  echo "  --disable-protocol=NAME  disables protocol NAME"
+  echo "  --disable-protocols      disables all protocols"
   echo
   echo "Developer options (useful when working on FFmpeg itself):"
   echo "  --enable-gprof           enable profiling with gprof [$gprof]"
@@ -309,10 +310,13 @@ print_config(){
     makefile=$3
     shift 3
     for cfg; do
+        ucname="`toupper $cfg`"
         if enabled $cfg; then
-            ucname="${pfx}`toupper $cfg`"
-            echo "#define ${ucname} 1" >> $header
-            echo "${ucname}=yes" >> $makefile
+            echo "#define ${pfx}${ucname} 1" >> $header
+            echo "#define ENABLE_${ucname} 1" >> $header
+            echo "${pfx}${ucname}=yes" >> $makefile
+        else
+            echo "#define ENABLE_${ucname} 0" >> $header
         fi
     done
 }
@@ -394,7 +398,12 @@ check_cpp(){
 check_ld(){
     log check_ld "$@"
     check_cc || return
-    check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
+    flags=''
+    libs=''
+    for f; do
+        test "${f}" = "${f#-l}" && flags="$flags $f" || libs="$libs $f"
+    done
+    check_cmd $cc $LDFLAGS $flags -o $TMPE $TMPO $extralibs $libs
 }
 
 check_cflags(){
@@ -486,6 +495,32 @@ check_exec(){
     check_ld "$@" && { enabled cross_compile || $TMPE >>$logfile 2>&1; }
 }
 
+check_exec_crash(){
+    code=`cat`
+
+    # exit() is not async signal safe.  _Exit (C99) and _exit (POSIX)
+    # are safe but may not be available everywhere.  Thus we use
+    # raise(SIGTERM) instead.  The check is run in a subshell so we
+    # can redirect the "Terminated" message from the shell.  SIGBUS
+    # is not defined by standard C so it is used conditionally.
+
+    (check_exec "$@") >>$logfile 2>&1 <<EOF
+#include <signal.h>
+static void sighandler(int sig){
+    raise(SIGTERM);
+}
+int main(){
+    signal(SIGILL, sighandler);
+    signal(SIGFPE, sighandler);
+    signal(SIGSEGV, sighandler);
+#ifdef SIGBUS
+    signal(SIGBUS, sighandler);
+#endif
+    { $code }
+}
+EOF
+}
+
 require(){
     name="$1"
     header="$2"
@@ -529,12 +564,9 @@ CONFIG_LIST='
     encoders
     decoders
     parsers
+    bsfs
     muxers
     demuxers
-    amr
-    amr_nb
-    amr_nb_fixed
-    amr_wb
     audio_beos
     audio_oss
     avisynth
@@ -550,7 +582,9 @@ CONFIG_LIST='
     ipv6
     liba52
     liba52bin
-    libdts
+    libamr
+    libamr_nb
+    libamr_wb
     libfaac
     libfaad
     libfaadbin
@@ -560,29 +594,63 @@ CONFIG_LIST='
     libogg
     libtheora
     libvorbis
+    libx264
+    libxvid
     memalign_hack
     mpegaudio_hp
     network
     powerpc_perf
     pp
     protocols
+    small
     swscaler
     vhook
     v4l
     v4l2
-    wince
     x11grab
-    x264
-    xvid
     zlib
 '
 
-HAVE_LIST='
+THREADS_LIST='
+    beosthreads
+    os2threads
+    pthreads
+    w32threads
+'
+
+ARCH_LIST='
+    alpha
+    armv4l
+    bfin
+    ia64
+    m68k
+    mips
+    parisc
+    powerpc
+    s390
+    sh4
+    sparc
+    sparc64
+    x86
+    x86_32
+    x86_64
+'
+
+ARCH_EXT_LIST='
     altivec
-    altivec_h
     armv5te
     armv6
-    beosthreads
+    iwmmxt
+    mmi
+    mmx
+    ssse3
+'
+
+HAVE_LIST="
+    $ARCH_EXT_LIST
+    $THREADS_LIST
+    altivec_h
+    arpa_inet_h
     byteswap_h
     cmov
     dcbzl
@@ -593,83 +661,95 @@ HAVE_LIST='
     dev_video_bktr_ioctl_bt848_h
     dlfcn_h
     dlopen
+    ebp_available
+    ebx_available
+    fast_64bit
     fast_cmov
+    fast_unaligned
     freetype2
     imlib2
     inet_aton
-    iwmmxt
-    localtime_r
     lrintf
     machine_ioctl_bt848_h
     machine_ioctl_meteor_h
     malloc_h
     memalign
     mlib
-    mmi
-    mmx
     os2
-    os2threads
-    pthreads
+    ppc64
     sdl
     sdl_video_size
     soundcard_h
     sys_poll_h
     sys_soundcard_h
     threads
-    w32threads
-'
-
-TARGET_LIST='
-    altivec
-    armv5te
-    armv6
-    iwmmxt
-    mmi
-    mmx
-'
+"
 
 CMDLINE_SELECT="
+    $ARCH_EXT_LIST
     $CONFIG_LIST
-    $TARGET_LIST
-    amr_if2
+    $THREADS_LIST
     debug
     extra_warnings
     shared
     static
-    beosthreads
-    os2threads
-    pthreads
-    w32threads
 "
 
+# code dependency declarations
+
+# architecture extensions
+altivec_deps="powerpc"
+armv5te_deps="armv4l"
+armv6_deps="armv4l"
+iwmmxt_deps="armv4l"
+mmi_deps="mips"
+mmx_deps="x86"
+ssse3_deps="x86"
+
+# decoders / encoders
+dxa_decoder_deps="zlib"
 flashsv_decoder_deps="zlib"
 flashsv_encoder_deps="zlib"
+flv_decoder_deps="h263_decoder"
+h263_decoder_deps="h263_parser mpeg4video_parser"
+h263i_decoder_deps="h263_decoder"
+h264_decoder_deps="h264_parser"
 mpeg_xvmc_decoder_deps="xvmc"
+mpeg4_decoder_deps="h263_decoder"
+msmpeg4v1_decoder_deps="h263_decoder"
+msmpeg4v2_decoder_deps="h263_decoder"
+msmpeg4v3_decoder_deps="h263_decoder"
 png_decoder_deps="zlib"
 png_encoder_deps="zlib"
-x264_encoder_deps="x264"
-xvid_encoder_deps="xvid"
+vc1_decoder_deps="h263_decoder"
+wmv1_decoder_deps="h263_decoder"
+wmv2_decoder_deps="h263_decoder"
+wmv3_decoder_deps="h263_decoder"
 zmbv_decoder_deps="zlib"
 zmbv_encoder_deps="zlib"
 
-aac_decoder_deps="libfaad"
+# external libraries
 mpeg4aac_decoder_deps="libfaad"
-amr_nb_decoder_deps_any="amr_nb amr_nb_fixed"
-amr_nb_encoder_deps_any="amr_nb amr_nb_fixed"
-amr_wb_decoder_deps="amr_wb"
-amr_wb_encoder_deps="amr_wb"
-dts_decoder_deps="libdts"
-faac_encoder_deps="libfaac"
 liba52_decoder_deps="liba52"
+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"
 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"
-mp3lame_encoder_deps="libmp3lame"
-oggvorbis_decoder_deps="libvorbis"
-oggvorbis_encoder_deps="libvorbis"
+libvorbis_decoder_deps="libvorbis"
+libvorbis_encoder_deps="libvorbis"
+libx264_encoder_deps="libx264"
+libxvid_encoder_deps="libxvid"
 
+# 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"
@@ -677,18 +757,27 @@ dv1394_demuxer_deps="dv1394"
 gxf_muxer_deps="gpl"
 libnut_demuxer_deps="libnut"
 libnut_muxer_deps="libnut"
+mp3_demuxer_deps="mpegaudio_parser"
 ogg_muxer_deps="libogg"
 redir_demuxer_deps="network"
-rtp_muxer_deps="network"
-rtsp_demuxer_deps="network"
-sdp_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_device_demuxer_deps_any="v4l bktr"
+video_grab_bktr_demuxer_deps="bktr"
+video_grab_v4l_demuxer_deps="v4l"
 x11_grab_device_demuxer_deps="x11grab"
 
+# protocols
+http_protocol_deps="network"
+rtp_protocol_deps="udp_protocol"
+tcp_protocol_deps="network"
+udp_protocol_deps="network"
+
+# programs
 ffplay_deps="sdl"
-ffserver_deps="network protocols muxers"
-network_deps="protocols"
+ffserver_deps="muxers rtp_protocol"
+
 
 # set temporary file name
 if test ! -z "$TMPDIR" ; then
@@ -731,26 +820,11 @@ asmalign_pot="unknown"
 # machine
 arch=`uname -m`
 cpu="generic"
-powerpc_perf="no"
-mmx="default"
-cmov="no"
-fast_cmov="no"
-armv5te="default"
-armv6="default"
-iwmmxt="default"
-altivec="default"
-dcbzl="no"
-mmi="default"
-bigendian="no"
 
 # OS
-targetos=`uname -s`
-beos_netserver="no"
-os2="no"
-wince="no"
+targetos=$(tolower $(uname -s))
 
 # non-library system interfaces
-audio_beos="default"
 audio_oss="yes"
 bktr="yes"
 dv1394="yes"
@@ -758,42 +832,15 @@ v4l2="yes"
 v4l="yes"
 
 # libraries
-amr_if2="no"
-amr_nb="no"
-amr_nb_fixed="no"
-amr_wb="no"
-avisynth="no"
-dc1394="no"
-dlfcn_h="no"
-dlopen="no"
-liba52="no"
-liba52bin="no"
-libdts="no"
-libfaac="no"
-libfaad2="no"
-libfaad="no"
-libfaadbin="no"
-libgsm="no"
-libmp3lame="no"
-libnut="no"
-libogg="no"
-libtheora="no"
-libvorbis="no"
-mlib="no"
-x11grab="no"
-x264="no"
-xvid="no"
 zlib="yes"
 
 # configurable options
 debug="yes"
 dostrip="yes"
-extra_warnings="no"
 ffmpeg="yes"
 ffplay="yes"
 ffserver="yes"
 gpl="no"
-gprof="no"
 ipv6="yes"
 shared="no"
 static="yes"
@@ -801,23 +848,14 @@ memalign_hack="no"
 mpegaudio_hp="yes"
 network="yes"
 optimize="yes"
-pp="no"
 protocols="yes"
-swscaler="no"
 vhook="default"
 
-# threading
-beosthreads="no"
-os2threads="no"
-pthreads="no"
-w32threads="no"
-thread_type="no"
-
 # build settings
 SHFLAGS='-shared -Wl,-soname,$@'
 VHOOKSHFLAGS='$(SHFLAGS)'
 LIBOBJFLAGS=""
-FFLDFLAGS=-Wl,--warn-common
+FFLDFLAGS=
 LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
 FFSERVERLDFLAGS=-Wl,-E
 LDCONFIG="ldconfig"
@@ -851,13 +889,15 @@ fi
 
 FFMPEG_CONFIGURATION="$@"
 
-ENCODER_LIST=`sed -n 's/^[^#]*ENC.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
-DECODER_LIST=`sed -n 's/^[^#]*DEC.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
-PARSER_LIST=`sed -n 's/^[^#]*PARSER.*, *\(.*\)).*/\1_parser/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"`
+ENCODER_LIST=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
+DECODER_LIST=`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
+PARSER_LIST=`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' "$source_path/libavcodec/allcodecs.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"`
+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
+enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST $DEMUXER_LIST $PROTOCOL_LIST $BSF_LIST
 
 die_unknown(){
     echo "Unknown option \"$1\"."
@@ -906,12 +946,8 @@ for opt do
   ;;
   --cpu=*) cpu="$optval"
   ;;
-  --enable-mingwce) wince="yes"
-  ;;
   --disable-opts) optimize="no"
   ;;
-  --enable-small) optimize="small"
-  ;;
   --enable-sunmlib) mlib="yes"
   ;;
   --disable-strip) dostrip="no"
@@ -926,10 +962,14 @@ for opt do
   ;;
   --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) $action ${optval}_${thing} ;;
+      encoder|decoder|muxer|demuxer|parser|bsf|protocol) $action ${optval}_${thing} ;;
       *) die_unknown "$opt" ;;
   esac
   ;;
@@ -949,13 +989,16 @@ 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"
+        enable fast_64bit
       fi
     fi
   ;;
@@ -965,15 +1008,21 @@ case "$arch" in
   ;;
   alpha)
     arch="alpha"
+    enable fast_64bit
   ;;
-  "Power Macintosh"|ppc|ppc64|powerpc)
+  "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"
@@ -981,9 +1030,13 @@ case "$arch" in
   sh4)
     arch="sh4"
   ;;
-  parisc|parisc64)
+  parisc)
     arch="parisc"
   ;;
+  parisc64)
+    arch="parisc"
+    enable fast_64bit
+  ;;
   s390|s390x)
     arch="s390"
   ;;
@@ -992,6 +1045,7 @@ case "$arch" in
   ;;
   ia64)
     arch="ia64"
+    enable fast_64bit
   ;;
   bfin)
     arch="bfin"
@@ -1001,9 +1055,13 @@ case "$arch" in
   ;;
 esac
 
+enable $arch
+enabled_any x86_32 x86_64 && enable x86
+enabled     sparc64       && enable sparc
+
 # OS specific
 osextralibs="-lm"
-case `tolower $targetos` in
+case $targetos in
   beos|haiku|zeta)
     PREFIX="$HOME/config"
     # helps building libavcodec
@@ -1070,7 +1128,6 @@ case `tolower $targetos` in
     strip="strip -d"
     ;;
   darwin)
-    cc="cc"
     dv1394="no"
     need_memalign="no"
     SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
@@ -1084,21 +1141,13 @@ case `tolower $targetos` in
     FFSERVERLDFLAGS=-Wl,-bind_at_load
     ;;
   mingw32*)
-    if enabled_all shared static; then
-        cat <<EOF
-You can only build one library type at once on MinGW.
-Specify --disable-static --enable-shared to only build
-the shared libraries. To build only the static libraries
-you do not need to pass additional options.
-EOF
-        exit 1
-    fi
+    targetos=mingw32
+    shlibdir="$bindir"
     dv1394="no"
+    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
+    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
     ffserver="no"
     network="no"
-    if enabled wince; then
-        protocols="no"
-    fi
     SLIBPREF=""
     SLIBSUF=".dll"
     EXESUF=".exe"
@@ -1106,28 +1155,32 @@ EOF
     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"
-    add_extralibs -lws2_32
+    SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base"
+    enabled network && add_extralibs -lws2_32
     ;;
   cygwin*)
-    targetos=CYGWIN
+    targetos=cygwin
     shlibdir="$bindir"
     dv1394="no"
-    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
-    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
+    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+    if enabled swscaler; then
+        VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
+        VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
+    fi
     osextralibs=""
     EXESUF=".exe"
     SLIBPREF="cyg"
     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'
+    SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a -Wl,--enable-auto-image-base'
     ;;
   linux)
     LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
     ;;
   irix*)
-    targetos=IRIX
+    targetos=irix
     ranlib="echo ignoring ranlib"
     ;;
   os/2)
@@ -1215,65 +1268,35 @@ if disabled gpl ; then
     }
     die_gpl_disabled "The Postprocessing code" pp
     die_gpl_disabled "liba52"                  liba52
-    die_gpl_disabled "libxvidcore"             xvid
-    die_gpl_disabled "x264"                    x264
-    die_gpl_disabled "libdts"                  libdts
+    die_gpl_disabled "libx264"                 libx264
+    die_gpl_disabled "libxvidcore"             libxvid
     die_gpl_disabled "FAAD2"                   libfaad2
     die_gpl_disabled "The X11 grabber"         x11grab
     die_gpl_disabled "The software scaler"     swscaler
 fi
 
-# compute MMX state
-if test $mmx = "default"; then
-    if test $arch = "x86_32" -o $arch = "x86_64"; then
-        mmx="yes"
-    else
-        mmx="no"
-    fi
-fi
+enable     $ARCH_EXT_LIST
+check_deps $ARCH_EXT_LIST
 
 test -z "$need_memalign" && need_memalign="$mmx"
 
 #Darwin CC versions
 needmdynamicnopic="no"
-if test $targetos = Darwin; then
+if test $targetos = darwin; then
     if test -n "`$cc -v 2>&1 | grep xlc`"; then
         add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
     else
-        gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
-        case "$gcc_version" in
-            *2.95*)
-                add_cflags "-no-cpp-precomp -pipe"
-                ;;
-            *[34].*)
-                add_cflags "-no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare"
-                if disabled shared; then
-                   needmdynamicnopic="yes"
-                fi
-                ;;
-            *)
-                add_cflags "-no-cpp-precomp -pipe"
-                if disabled shared; then
-                   needmdynamicnopic="yes"
-                fi
-                ;;
-        esac
+        add_cflags "-no-cpp-precomp -pipe"
+        check_cflags "-force_cpusubtype_ALL"
+        check_cflags "-Wno-sign-compare"
+        disabled shared && needmdynamicnopic="yes"
     fi
 fi
+enabled needmdynamicnopic && add_cflags -mdynamic-no-pic
 
 disabled optimize || add_cflags -fomit-frame-pointer
 
-# Can only do AltiVec on PowerPC
-if test $altivec = "default"; then
-    if test $arch = "powerpc"; then
-        altivec="yes"
-    else
-        altivec="no"
-    fi
-fi
-
 # Add processor-specific flags
-POWERPCMODE="32bits"
 if test $cpu != "generic"; then
     warn_altivec(){
         $1 altivec && echo "WARNING: Tuning for $2 but AltiVec $1.";
@@ -1306,7 +1329,12 @@ if test $cpu != "generic"; then
         G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
             add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
             warn_altivec disabled PPC970
-            POWERPCMODE="64bits"
+            enable ppc64
+        ;;
+        Cell|CELL|cell)
+            add_cflags "-mcpu=cell"
+            warn_altivec disabled Cell
+            enable ppc64
         ;;
         # targets that do NOT support conditional mov (cmov)
         i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
@@ -1331,7 +1359,6 @@ if test $cpu != "generic"; then
         bf*) #bf531 bf532 bf533 bf561 bf5xx all get this config
             add_cflags "-mfdpic"
             add_ldflags "-mfdpic"
-            add_ldflags "-Wl,--defsym,__stacksize=0x40000"
         ;;
         *)
         echo "WARNING: Unknown CPU \"$cpu\", ignored."
@@ -1377,6 +1404,34 @@ if test "$?" != 0; then
     die "C compiler test failed."
 fi
 
+if enabled x86; then
+    # check whether EBP is available on x86
+    # As 'i' is stored on the stack, this program will crash
+    # if the base pointer is used to access it because the
+    # base pointer is cleared in the inline assembly code.
+    check_exec_crash <<EOF && enable ebp_available
+    volatile int i=0;
+    asm volatile (
+        "xorl %%ebp, %%ebp"
+    ::: "%ebp");
+    return i;
+EOF
+
+    # check wether EBX is available on x86
+    check_cc <<EOF && enable ebx_available
+int main(){
+    asm volatile ("":::"%ebx");
+}
+EOF
+
+    # check whether binutils is new enough to compile SSSE3
+    enabled ssse3 && check_cc <<EOF || disable ssse3
+int main(){
+    asm volatile ("pabsw %xmm0, %xmm0");
+}
+EOF
+fi
+
 # check for assembler specific support
 
 if test $arch = "powerpc"; then
@@ -1393,20 +1448,16 @@ fi
 # check for SIMD availability
 
 # AltiVec flags: The FSF version of GCC differs from the Apple version
-if test $arch = "powerpc"; then
-    if enabled altivec; then
-        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
-            add_cflags "-faltivec"
-        else
-            add_cflags "-maltivec -mabi=altivec"
-        fi
+if enabled altivec; then
+    if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
+        add_cflags "-faltivec"
+    else
+        add_cflags "-maltivec -mabi=altivec"
     fi
-fi
 
-check_header altivec.h
+    check_header altivec.h
 
-# check if our compiler supports Motorola AltiVec C API
-if enabled altivec; then
+    # check if our compiler supports Motorola AltiVec C API
     if enabled altivec_h; then
         inc_altivec_h="#include <altivec.h>"
     else
@@ -1423,41 +1474,24 @@ EOF
 fi
 
 # check armv5te instructions support
-if test $armv5te = "default" -a $arch = "armv4l"; then
-    armv5te=no
-    check_cc <<EOF && armv5te=yes
-        int main(void) {
-        __asm__ __volatile__ ("qadd r0, r0, r0");
-        }
+enabled armv5te && check_cc <<EOF || disable armv5te
+int main(void) {
+    __asm__ __volatile__ ("qadd r0, r0, r0");
+}
 EOF
-fi
 
-if test $armv6 = "default" -a $arch = "armv4l"; then
-    check_cc <<EOF && armv6=yes || armv6=no
+enabled armv6 && check_cc <<EOF || disable armv6
 int main(void) {
     __asm__ __volatile__ ("sadd16 r0, r0, r0");
 }
 EOF
-fi
 
 # check iwmmxt support
-if test $iwmmxt = "default" -a $arch = "armv4l"; then
-    iwmmxt=no
-    check_cc <<EOF && iwmmxt=yes
-        int main(void) {
-        __asm__ __volatile__ ("wunpckelub wr6, wr4");
-        }
+enabled iwmmxt && check_cc <<EOF || disable iwmmxt
+int main(void) {
+    __asm__ __volatile__ ("wunpckelub wr6, wr4");
+}
 EOF
-fi
-
-# mmi only available on mips
-if test $mmi = "default"; then
-    if test $arch = "mips"; then
-        mmi="yes"
-    else
-        mmi="no"
-    fi
-fi
 
 # check if our compiler supports mmi
 enabled mmi && check_cc <<EOF || mmi="no"
@@ -1496,8 +1530,9 @@ fi
 
 check_header byteswap.h
 
+check_header arpa/inet.h
+
 check_func inet_aton
-check_func localtime_r
 enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
 
 # ffserver uses poll(),
@@ -1522,9 +1557,9 @@ if enabled pthreads; then
     fi
 fi
 
-for thread in pthreads beosthreads os2threads w32threads; do
+for thread in $THREADS_LIST; do
     if enabled $thread; then
-        if ! disabled thread_type ; then
+        if test -n "$thread_type"; then
             die "ERROR: Only one thread type must be selected."
         else
             thread_type="$thread"
@@ -1532,34 +1567,33 @@ for thread in pthreads beosthreads os2threads w32threads; do
     fi
 done
 
-enabled_any amr_nb amr_nb_fixed amr_wb amr_if2 && enable amr
-enabled_all amr_nb amr_nb_fixed &&
-    die "Only one of amr_nb and amr_nb_fixed may be enabled."
+# test for lrintf in math.h
+check_exec <<EOF && lrintf=yes || lrintf=no
+#define _ISOC9X_SOURCE  1
+#include <math.h>
+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 liba52     && require liba52 a52dec/a52.h a52_init -la52
-enabled libdts     && require libdts dts.h dts_init -ldts -lm
+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 libgsm     && require libgsm gsm.h gsm_create -lgsm
 enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
 enabled libtheora  && require libtheora theora/theora.h theora_info_init -ltheora -logg
 enabled libvorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
 enabled libogg     && require libogg ogg/ogg.h ogg_sync_init -logg
 enabled libnut     && require libnut libnut.h nut_demuxer_init -lnut
-enabled xvid       && require XviD xvid.h xvid_global -lxvidcore
-enabled x264       && require x264 x264.h x264_encoder_open -lx264
+enabled libx264    && require x264 x264.h x264_encoder_open -lx264
+enabled libxvid    && require Xvid xvid.h xvid_global -lxvidcore
 enabled dc1394     && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
 enabled mlib       && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
 enabled libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
 enabled libfaad    && require2 libfaad faad.h faacDecOpen -lfaad
 enabled avisynth   && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
 
-# test for lrintf in math.h
-check_exec <<EOF && lrintf=yes || lrintf=no
-#define _ISOC9X_SOURCE  1
-#include <math.h>
-int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
-EOF
-
 _restrict=
 for restrict_keyword in restrict __restrict__ __restrict; do
     check_cc <<EOF && _restrict=$restrict_keyword && break
@@ -1577,14 +1611,16 @@ elif check_func dlopen -ldl; then
     ldl=-ldl
 fi
 
+check_func fork
+
 test "$vhook" = "default" && vhook="$dlopen"
 
-enabled_any vhook liba52bin libfaadbin && add_extralibs $ldl
+enabled_any vhook liba52bin libfaadbin ffserver && add_extralibs $ldl
 
-if test "$targetos" = "CYGWIN" && enabled static ; then
+if test "$targetos" = cygwin -o "$targetos" = mingw32 && enabled_all static vhook ; then
     vhook="no"
     echo
-    echo "At the moment vhooks don't work on Cygwin static builds."
+    echo "At the moment vhooks don't work on Cygwin or MinGW static builds."
     echo "Patches welcome."
     echo
 fi
@@ -1691,12 +1727,13 @@ check_cflags -Wno-pointer-sign
 enabled extra_warnings && check_cflags -Winline
 
 # add some linker flags
+check_ldflags -Wl,--warn-common
 check_ldflags $LDLATEFLAGS
 
-# not all compilers support -Os
-test "$optimize" = "small" && check_cflags -Os
-
-if enabled optimize; then
+if enabled small; then
+    check_cflags -Os            # not all compilers support -Os
+    optimize="small"
+elif enabled optimize; then
     if test -n "`$cc -v 2>&1 | grep xlc`"; then
         add_cflags  "-O5"
         add_ldflags "-O5"
@@ -1720,8 +1757,7 @@ if enabled gprof; then
     add_ldflags "-p"
 fi
 
-VHOOKCFLAGS="-fPIC $CFLAGS"
-enabled needmdynamicnopic && add_cflags -mdynamic-no-pic
+VHOOKCFLAGS="-fPIC `echo $CFLAGS | sed s/-mdynamic-no-pic//`"
 
 # find if .align arg is power-of-two or not
 if test $asmalign_pot = "unknown"; then
@@ -1729,15 +1765,17 @@ if test $asmalign_pot = "unknown"; then
     echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
 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 $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 pthreads beosthreads os2threads w32threads && enable threads
+enabled_any $THREADS_LIST  && enable threads
 
 check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \
-    $DEMUXER_LIST $MUXER_LIST
+    $BSF_LIST $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST
 
 enabled libogg    && append pkg_requires "ogg >= 1.1"
 enabled libtheora && append pkg_requires "theora"
@@ -1753,67 +1791,64 @@ echo "ARCH                      $arch ($cpu)"
 if test "$BUILDSUF" != ""; then
     echo "build suffix              $BUILDSUF"
 fi
-echo "big-endian                $bigendian"
+echo "big-endian                ${bigendian-no}"
 if test $arch = "x86_32" -o $arch = "x86_64"; then
-    echo "MMX enabled               $mmx"
-    echo "CMOV enabled              $cmov"
-    echo "CMOV is fast              $fast_cmov"
+    echo "MMX enabled               ${mmx-no}"
+    echo "CMOV enabled              ${cmov-no}"
+    echo "CMOV is fast              ${fast_cmov-no}"
 fi
 if test $arch = "armv4l"; then
-    echo "ARMv5TE enabled           $armv5te"
-    echo "ARMv6 enabled             $armv6"
-    echo "IWMMXT enabled            $iwmmxt"
+    echo "ARMv5TE enabled           ${armv5te-no}"
+    echo "ARMv6 enabled             ${armv6-no}"
+    echo "IWMMXT enabled            ${iwmmxt-no}"
 fi
 if test $arch = "mips"; then
-    echo "MMI enabled               $mmi"
+    echo "MMI enabled               ${mmi-no}"
 fi
 if test $arch = "powerpc"; then
-    echo "AltiVec enabled           $altivec"
-    echo "dcbzl available           $dcbzl"
+    echo "AltiVec enabled           ${altivec-no}"
+    echo "dcbzl available           ${dcbzl-no}"
 fi
-echo "gprof enabled             $gprof"
-echo "debug symbols             $debug"
-echo "strip symbols             $dostrip"
-echo "optimize                  $optimize"
-echo "static                    $static"
-echo "shared                    $shared"
-echo "postprocessing support    $pp"
-echo "software scaler enabled   $swscaler"
-echo "video hooking             $vhook"
+echo "gprof enabled             ${gprof-no}"
+echo "debug symbols             ${debug-no}"
+echo "strip symbols             ${dostrip-no}"
+echo "optimize                  ${optimize-no}"
+echo "static                    ${static-no}"
+echo "shared                    ${shared-no}"
+echo "postprocessing support    ${pp-no}"
+echo "software scaler enabled   ${swscaler-no}"
+echo "video hooking             ${vhook-no}"
 if enabled vhook; then
-    echo "Imlib2 support            $imlib2"
-    echo "FreeType support          $freetype2"
+    echo "Imlib2 support            ${imlib2-no}"
+    echo "FreeType support          ${freetype2-no}"
 fi
-echo "network support           $network"
+echo "network support           ${network-no}"
 if enabled network; then
-    echo "IPv6 support              $ipv6"
+    echo "IPv6 support              ${ipv6-no}"
 fi
-echo "threading support         $thread_type"
-echo "SDL support               $sdl"
+echo "threading support         ${thread_type-no}"
+echo "SDL support               ${sdl-no}"
 if enabled sdl_too_old; then
     echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
 fi
-echo "Sun medialib support      $mlib"
-echo "AVISynth enabled          $avisynth"
-echo "liba52 support            $liba52"
-echo "liba52 dlopened           $liba52bin"
-echo "libdts support            $libdts"
-echo "libfaac enabled           $libfaac"
-echo "libfaad enabled           $libfaad"
-echo "faadbin enabled           $libfaadbin"
-echo "libgsm enabled            $libgsm"
-echo "libmp3lame enabled        $libmp3lame"
-echo "libnut enabled            $libnut"
-echo "libogg enabled            $libogg"
-echo "libtheora enabled         $libtheora"
-echo "libvorbis enabled         $libvorbis"
-echo "x264 enabled              $x264"
-echo "XviD enabled              $xvid"
-echo "zlib enabled              $zlib"
-echo "AMR-NB float support      $amr_nb"
-echo "AMR-NB fixed support      $amr_nb_fixed"
-echo "AMR-WB float support      $amr_wb"
-echo "AMR-WB IF2 support        $amr_if2"
+echo "Sun medialib support      ${mlib-no}"
+echo "AVISynth enabled          ${avisynth-no}"
+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 "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}"
 if disabled gpl; then
     echo "License: LGPL"
 else
@@ -1865,27 +1900,6 @@ echo "SLIBPREF=$SLIBPREF" >> config.mak
 echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
 echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
 
-ucarch=`toupper $arch`
-echo "TARGET_ARCH_${ucarch}=yes" >> config.mak
-echo "#define ARCH_${ucarch} 1" >> $TMPH
-
-# special cases
-case "$arch" in
-    x86_32|x86_64)
-        echo "TARGET_ARCH_X86=yes" >> config.mak
-        echo "#define ARCH_X86 1" >> $TMPH
-        ;;
-    powerpc)
-        if test "$POWERPCMODE" = "64bits"; then
-            echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
-        fi
-        ;;
-    sparc64)
-        echo "TARGET_ARCH_SPARC=yes" >> config.mak
-        echo "#define ARCH_SPARC 1" >> $TMPH
-        ;;
-esac
-
 if enabled bigendian; then
   echo "WORDS_BIGENDIAN=yes" >> config.mak
   echo "#define WORDS_BIGENDIAN 1" >> $TMPH
@@ -1932,29 +1946,31 @@ 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
-print_config TARGET_ $TMPH config.mak $TARGET_LIST
-
-if test "$targetos" = "Darwin"; then
+print_config CONFIG_ $TMPH config.mak $CONFIG_LIST   \
+                                      $DECODER_LIST  \
+                                      $ENCODER_LIST  \
+                                      $PARSER_LIST   \
+                                      $BSF_LIST      \
+                                      $DEMUXER_LIST  \
+                                      $MUXER_LIST    \
+                                      $PROTOCOL_LIST \
+
+if test "$targetos" = darwin; then
   echo "#define CONFIG_DARWIN 1"  >> $TMPH
 fi
 
 echo "#define restrict $_restrict" >> $TMPH
 
-if test "$optimize" = "small"; then
+if enabled small; then
   echo "#define always_inline"  >> $TMPH
-  echo "#define CONFIG_SMALL 1" >> $TMPH
 fi
 
 echo "SRC_PATH=\"$source_path\"" >> config.mak
 echo "SRC_PATH_BARE=$source_path" >> config.mak
 echo "BUILD_ROOT=\"$PWD\"" >> config.mak
 
-if enabled amr_if2; then
-  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
-fi
-
 # 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
@@ -1963,19 +1979,6 @@ else
 fi
 
 
-for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
-    ucname="`toupper $codec`"
-    config_name="CONFIG_$ucname"
-    enabled_name="ENABLE_$ucname"
-    if enabled $codec; then
-        echo "#define $config_name 1" >> $TMPH
-        echo "#define $enabled_name 1" >> $TMPH
-        echo "$config_name=yes" >> config.mak
-    else
-        echo "#define $enabled_name 0" >> $TMPH
-    fi
-done
-
 # Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
 if ! cmp -s $TMPH config.h; then
         mv -f $TMPH config.h
@@ -1998,9 +2001,6 @@ if enabled source_path_used; then
          libavcodec/sparc \
          libavcodec/mlib \
          libavcodec/ppc \
-         libavcodec/amr \
-         libavcodec/amr_float \
-         libavcodec/amrwb_float \
          libpostproc \
          libavutil \
          libswscale \
@@ -2015,9 +2015,6 @@ if enabled source_path_used; then
           libpostproc/Makefile \
           libavutil/Makefile \
           libswscale/Makefile \
-          tests/Makefile \
-          vhook/Makefile \
-          doc/Makefile \
           doc/texi2pod.pl \
           "
     for dir in $DIRS ; do
@@ -2093,10 +2090,10 @@ if enabled pp; then
 fi
 
 if enabled swscaler; then
-  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "-lswscale" "libavutil = $lavu_version" swscale
+  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
-  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" swscale
+  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:/