]> git.sesse.net Git - ffmpeg/blobdiff - configure
Move all internal -I parameters to the front of CFLAGS to avoid using external
[ffmpeg] / configure
index 2519cf679ee498de4bb114bf5bcc56cd1ff9f554..412e827a9710f423285ccddac53e1079b919c21d 100755 (executable)
--- a/configure
+++ b/configure
@@ -4,7 +4,8 @@
 #
 
 # make sure we are running under a compatible shell
-(: ${foo%%bar}) 2>/dev/null
+unset foo
+(: ${foo%%bar}) 2>/dev/null && ! (: ${foo?}) 2>/dev/null
 if test "$?" != 0; then
     if test "x$FFMPEG_CONFIGURE_EXEC" = x; then
         FFMPEG_CONFIGURE_EXEC=1
@@ -24,14 +25,14 @@ show_help(){
   echo "Standard options:"
   echo "  --help                   print this message"
   echo "  --log[=FILE|yes|no]      log tests and output to FILE [config.err]"
-  echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
+  echo "  --prefix=PREFIX          install in PREFIX [$PREFIX]"
   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 "  --enable-mp3lame         enable MP3 encoding via libmp3lame [default=no]"
   echo "  --enable-libogg          enable Ogg support via libogg [default=no]"
   echo "  --enable-vorbis          enable Vorbis support via libvorbis [default=no]"
-  echo "  --enable-theora          enable Theora support via libtheora [default=no]"
   echo "  --enable-faad            enable FAAD support via libfaad [default=no]"
   echo "  --enable-faadbin         build FAAD support with runtime linking [default=no]"
   echo "  --enable-faac            enable FAAC support via libfaac [default=no]"
@@ -56,6 +57,7 @@ show_help(){
   echo "  --enable-pthreads        use pthreads [default=no]"
   echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394"
   echo "                           and libraw1394 [default=no]"
+  echo "  --enable-swscaler        software scaler support [default=no]"
   echo "  --enable-gpl             allow use of GPL code, the resulting libav*"
   echo "                           and ffmpeg will be under GPL [default=no]"
   echo ""
@@ -84,6 +86,7 @@ show_help(){
   echo "  --disable-bktr           disable bktr video grabbing [default=no]"
   echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
   echo "  --disable-network        disable network support [default=no]"
+  echo "  --disable-ipv6           disable ipv6 support [default=no]"
   echo "  --disable-zlib           disable zlib [default=no]"
   echo "  --disable-simple_idct    disable simple IDCT routines [default=no]"
   echo "  --disable-vhook          disable video hooking support"
@@ -213,27 +216,29 @@ add_extralibs(){
     append extralibs "$@"
 }
 
+check_cmd(){
+    log "$@"
+    "$@" >>$logfile 2>&1
+}
+
 check_cc(){
     log check_cc "$@"
     cat >$TMPC
     log_file $TMPC
-    log $cc $CFLAGS "$@" -c -o $TMPO $TMPC
-    $cc $CFLAGS "$@" -c -o $TMPO $TMPC >>$logfile 2>&1
+    check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC
 }
 
 check_cpp(){
     log check_cpp "$@"
     cat >$TMPC
     log_file $TMPC
-    log $cc $CFLAGS "$@" -E -o $TMPO $TMPC
-    $cc $CFLAGS "$@" -E -o $TMPO $TMPC >>$logfile 2>&1
+    check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
 }
 
 check_ld(){
     log check_ld "$@"
     check_cc || return
-    log $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
-    $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs >>$logfile 2>&1
+    check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
 }
 
 check_cflags(){
@@ -322,11 +327,12 @@ TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
 # default parameters
 logging="yes"
 logfile="config.err"
-prefix="/usr/local"
-libdir='${prefix}/lib'
-incdir='${prefix}/include/ffmpeg'
-mandir='${prefix}/man'
-bindir='${prefix}/bin'
+PREFIX="/usr/local"
+libdir='${PREFIX}/lib'
+shlibdir="$libdir"
+incdir='${PREFIX}/include/ffmpeg'
+mandir='${PREFIX}/man'
+bindir='${PREFIX}/bin'
 cross_prefix=""
 cross_compile="no"
 cc="gcc"
@@ -401,12 +407,12 @@ audio_beos="no"
 dv1394="yes"
 dc1394="no"
 network="yes"
+ipv6="yes"
 zlib="yes"
 libgsm="no"
 mp3lame="no"
 libogg="no"
 vorbis="no"
-theora="no"
 faad="no"
 faadbin="no"
 faac="no"
@@ -418,7 +424,6 @@ dts="no"
 pp="no"
 mingw32="no"
 mingwce="no"
-cygwin="no"
 os2="no"
 lstatic="yes"
 lshared="no"
@@ -436,7 +441,7 @@ dlfcn="no"
 dlopen="no"
 mpegaudio_hp="yes"
 SHFLAGS='-shared -Wl,-soname,$@'
-VHOOKFLAGS="$SHFLAGS"
+VHOOKSHFLAGS="$SHFLAGS"
 netserver="no"
 need_inet_aton="no"
 protocols="yes"
@@ -444,7 +449,7 @@ ffserver="yes"
 ffplay="yes"
 LIBOBJFLAGS=""
 FFLDFLAGS=-Wl,--warn-common
-FFSLDFLAGS=-Wl,-E
+FFSERVERLDFLAGS=-Wl,-E
 LDCONFIG="ldconfig"
 LIBPREF="lib"
 LIBSUF=".a"
@@ -462,14 +467,17 @@ amr_nb_fixed="no"
 amr_if2="no"
 sunmlib="no"
 pthreads="no"
+swscaler="no"
 gpl="no"
 memalignhack="no"
+asmalign_pot="unknown"
+LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
 
 # OS specific
 targetos=`uname -s`
 case $targetos in
 BeOS)
-prefix="/boot/home/config"
+PREFIX="/boot/home/config"
 # helps building libavcodec
 CFLAGS="$CFLAGS -DPIC -fomit-frame-pointer"
 # 3 gcc releases known for BeOS, each with ugly bugs
@@ -506,7 +514,7 @@ audio_oss="no"
 dv1394="no"
 make="gmake"
 FFLDFLAGS=""
-FFSLDFLAGS=""
+FFSERVERLDFLAGS=""
 SHFLAGS="-shared -Wl,-h,\$@"
 need_inet_aton="yes"
 extralibs="$extralibs -lsocket -lnsl"
@@ -528,7 +536,7 @@ audio_oss="yes"
 dv1394="no"
 make="gmake"
 LIBOBJFLAGS="\$(PIC)"
-LDCONFIG="ldconfig -m \$(libdir)"
+LDCONFIG="ldconfig -m \$(shlibdir)"
 extralibs="$extralibs -lossaudio"
 ;;
 FreeBSD)
@@ -565,17 +573,17 @@ v4l="no"
 v4l2="no"
 audio_oss="no"
 dv1394="no"
-SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(libdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)"
-VHOOKFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(libdir)/vhook/$@'
+SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)"
+VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
 extralibs=""
-darwin="yes"
 strip="strip -x"
 installstrip=""
 FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
 SLIBSUF=".dylib"
 SLIBNAME_WITH_FULLVERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
-FFSLDFLAGS=-Wl,-bind_at_load
+FFSERVERLDFLAGS=-Wl,-bind_at_load
+LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
 ;;
 MINGW32*)
 # Note: the rest of the mingw32 config is done afterwards as mingw32
@@ -583,18 +591,25 @@ MINGW32*)
 mingw32="yes"
 ;;
 CYGWIN*)
+targetos=CYGWIN
+shlibdir='${PREFIX}/bin'
 v4l="no"
 v4l2="no"
 audio_oss="yes"
 dv1394="no"
 vhook="no"
 extralibs=""
-cygwin="yes"
 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'
 ;;
 Linux)
 ;;
 IRIX*)
+targetos=IRIX
 ranlib="echo ignoring ranlib"
 v4l="no"
 v4l2="no"
@@ -609,7 +624,7 @@ strip="echo ignoring strip"
 CFLAGS="$CFLAGS -Zomf"
 FFLDFLAGS="-Zomf -Zstack 16384 -s"
 SHFLAGS="-Zdll -Zomf"
-FFSLDFLAGS=""
+FFSERVERLDFLAGS=""
 LIBPREF=""
 LIBSUF=".lib"
 SLIBPREF=""
@@ -626,30 +641,11 @@ vhook="no"
 os2="yes"
 
 ;;
-*) ;;
+*)
+targetos="${targetos}-UNKNOWN"
+;;
 esac
 
-# From MPlayer configure. We need TARGET_OS available
-# to the Makefile, so it can distinguish between flavors
-# of AltiVec on PowerPC.
-TARGET_OS=`( uname -s ) 2>&1`
-  case "$TARGET_OS" in
-  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS)
-    ;;
-  IRIX*)
-    TARGET_OS=IRIX
-    ;;
-  HP-UX*)
-    TARGET_OS=HP-UX
-    ;;
-  [cC][yY][gG][wW][iI][nN]*)
-    TARGET_OS=CYGWIN
-    ;;
-  *)
-    TARGET_OS="$TARGET_OS-UNKNOWN"
-    ;;
-  esac
-
 # find source path
 source_path="`dirname $0`"
 source_path_used="yes"
@@ -682,10 +678,12 @@ for opt do
   ;;
   --log=*) logging="$optval"
   ;;
-  --prefix=*) prefix="$optval"; force_prefix=yes
+  --prefix=*) PREFIX="$optval"; force_prefix=yes
   ;;
   --libdir=*) libdir="$optval"; force_libdir=yes
   ;;
+  --shlibdir=*) shlibdir="$optval"
+  ;;
   --incdir=*) incdir="$optval"
   ;;
   --mandir=*) mandir="$optval"
@@ -702,7 +700,7 @@ for opt do
   ;;
   --extra-cflags=*) CFLAGS="$CFLAGS $optval"
   ;;
-  --extra-ldflags=*) FFLDFLAGS="$FFLDFLAGS $optval"
+  --extra-ldflags=*) EXTRALDFLAGS="$optval"
   ;;
   --extra-libs=*) extralibs="$optval"
   ;;
@@ -736,6 +734,8 @@ for opt do
   ;;
   --disable-network) network="no"; ffserver="no"
   ;;
+  --disable-ipv6) ipv6="no";
+  ;;
   --disable-zlib) zlib="no"
   ;;
   --enable-a52) a52="yes"
@@ -756,9 +756,6 @@ for opt do
   --enable-vorbis) vorbis="yes"
     pkg_requires="$pkg_requires vorbis vorbisenc"
   ;;
-  --enable-theora) theora="yes"
-    pkg_requires="$pkg_requires theora"
-  ;;
   --enable-faad) faad="yes"
   ;;
   --enable-faadbin) faadbin="yes"
@@ -814,6 +811,8 @@ for opt do
   ;;
   --enable-pthreads) pthreads="yes"
   ;;
+  --enable-swscaler) swscaler="yes"
+  ;;
   --enable-gpl) gpl="yes"
   ;;
   --enable-memalign-hack) memalignhack="yes"
@@ -889,17 +888,20 @@ EOF
     if test "$mingwce" = "yes"; then
         protocols="no"
     fi
-    #FIXME: This ignores --extra-ldflags.
-    FFLDFLAGS='-Wl,--output-def,$(@:.dll=.def),--out-implib,lib$(SLIBNAME:$(SLIBSUF)=.dll.a)'
     SLIBPREF=""
     SLIBSUF=".dll"
     EXESUF=".exe"
-    if test "$force_prefix" != yes; then prefix="$PROGRAMFILES/FFmpeg"; fi
-    if test "$force_libdir" != yes; then bindir="$prefix"; fi
+    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
+    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
+    SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
+    FFLDFLAGS="-Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a)"
+    if test "$force_prefix" != yes; then PREFIX="$PROGRAMFILES/FFmpeg"; fi
+    if test "$force_libdir" != yes; then bindir='${PREFIX}'; fi
+    shlibdir='${PREFIX}'
 fi
 
-# Combine FFLDFLAGS and the LDFLAGS environment variable
-LDFLAGS="$FFLDFLAGS $LDFLAGS"
+# Combine FFLDFLAGS, EXTRALDFLAGS and the LDFLAGS environment variable.
+LDFLAGS="$FFLDFLAGS $EXTRALDFLAGS $LDFLAGS"
 
 test -n "$cross_prefix" && cross_compile=yes
 cc="${cross_prefix}${cc}"
@@ -918,14 +920,6 @@ EOF
     exit 1;
 fi
 
-if test "$theora" = "yes" ; then
-    if test "$libogg" = "no"; then
-        echo "libogg must be enabled to enable Theora."
-        fail="yes"
-        theora="no"
-    fi
-fi
-
 if test "$vorbis" = "yes" ; then
     if test "$libogg" = "no"; then
         echo "libogg must be enabled to enable Vorbis."
@@ -980,6 +974,10 @@ EOF
         fi
     fi
 
+    if test "$swscaler" != "no"; then
+        echo "The software scaler is under GPL and --enable-gpl is not specified."
+        fail="yes"
+    fi
 
     if test "$fail" = "yes"; then
         exit 1
@@ -1014,22 +1012,25 @@ if test $targetos = Darwin; then
         gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
         case "$gcc_version" in
             *2.95*)
-                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
+                CFLAGS="$CFLAGS -no-cpp-precomp -pipe"
                 ;;
             *[34].*)
-                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
+                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare"
                 if test "$lshared" = no; then
                    needmdynamicnopic="yes"
                 fi
                 ;;
             *)
-                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
+                CFLAGS="$CFLAGS -no-cpp-precomp -pipe"
                 if test "$lshared" = no; then
                    needmdynamicnopic="yes"
                 fi
                 ;;
         esac
     fi
+    if test $optimize != "no"; then
+        CFLAGS="$CFLAGS -fomit-frame-pointer"
+    fi
 fi
 
 # Can only do AltiVec on PowerPC
@@ -1238,7 +1239,9 @@ if check_header malloc.h; then
     check_func memalign || _memalign="no"
 fi
 
-if test "$_memalign" = "no" -a "$mmx" = "yes" -a "$memalignhack" != "yes"; then
+if test "$_memalign" = "no" -a "$mmx" = "yes" -a \
+        "$memalignhack" != "yes" -a "$targetos" != "Darwin" -a \
+        "$targetos" != "FreeBSD" ; then
     die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
 fi
 
@@ -1261,7 +1264,6 @@ enabled libgsm  && require libgsm gsm.h gsm_create -lgsm
 enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame
 enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
 enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
-enabled theora  && require libtheora theora/theora.h theora_info_init -ltheora
 enabled xvid    && require XviD xvid.h xvid_global -lxvidcore
 enabled x264    && require x264 x264.h x264_encoder_open -lx264
 enabled dc1394  && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
@@ -1415,7 +1417,7 @@ fi
 ##########################################
 # IPv6 check
 
-enabled network && check_ld <<EOF && ipv6=yes || ipv6=no
+enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
@@ -1475,7 +1477,13 @@ if test "$gprof" = "yes" ; then
     LDFLAGS="$LDFLAGS -p"
 fi
 
-echo "install prefix   $prefix"
+# find if .align arg is power-of-two or not
+if test $asmalign_pot = "unknown"; then
+    asmalign_pot="no"
+    echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
+fi
+
+echo "install prefix   $PREFIX"
 echo "source path      $source_path"
 echo "C compiler       $cc"
 echo "make             $make"
@@ -1506,7 +1514,6 @@ echo "libgsm enabled   $libgsm"
 echo "mp3lame enabled  $mp3lame"
 echo "libogg enabled   $libogg"
 echo "Vorbis enabled   $vorbis"
-echo "Theora enabled   $theora"
 echo "FAAD enabled     $faad"
 echo "faadbin enabled  $faadbin"
 echo "FAAC enabled     $faac"
@@ -1516,6 +1523,7 @@ echo "a52 support      $a52"
 echo "a52 dlopened     $a52bin"
 echo "DTS support      $dts"
 echo "pp support       $pp"
+echo "Software Scaler enabled $swscaler"
 echo "debug symbols    $debug"
 echo "strip symbols    $dostrip"
 echo "optimize         $optimize"
@@ -1541,6 +1549,7 @@ echo "network support      $network"
 if test "$network" = "yes" ; then
     echo "IPv6 support         $ipv6"
 fi
+echo ".align is power-of-two" $asmalign_pot
 if test "$gpl" = "no" ; then
     echo "License: LGPL"
 else
@@ -1555,8 +1564,10 @@ echo "# Automatically generated by configure - do not modify!" > config.mak
 echo "/* Automatically generated by configure - do not modify! */" > $TMPH
 echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
 
-echo "prefix=\$(DESTDIR)$prefix" >> config.mak
+echo "PREFIX=$PREFIX" >> config.mak
+echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
 echo "libdir=\$(DESTDIR)$libdir" >> config.mak
+echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
 echo "incdir=\$(DESTDIR)$incdir" >> config.mak
 echo "bindir=\$(DESTDIR)$bindir" >> config.mak
 echo "mandir=\$(DESTDIR)$mandir" >> config.mak
@@ -1572,18 +1583,16 @@ else
     echo "INSTALLSTRIP=" >> config.mak
 fi
 
-# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic, used when building
-# shared modules on OS/X (vhook/Makefile).
-SHCFLAGS="$CFLAGS"
+VHOOKCFLAGS="-fPIC $CFLAGS"
 test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
 
 echo "OPTFLAGS=$CFLAGS" >> config.mak
-echo "SHCFLAGS=$SHCFLAGS">>config.mak
+echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
 echo "LDFLAGS=$LDFLAGS" >> config.mak
 echo "LDCONFIG=$LDCONFIG" >> config.mak
-echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
+echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
 echo "SHFLAGS=$SHFLAGS" >> config.mak
-echo "VHOOKFLAGS=$VHOOKFLAGS" >> config.mak
+echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
 echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
 echo "BUILD_STATIC=$lstatic" >> config.mak
 echo "BUILDSUF=$BUILDSUF" >> config.mak
@@ -1597,7 +1606,7 @@ fi
 echo "SLIBPREF=$SLIBPREF" >> config.mak
 echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
 echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
-echo "TARGET_OS=$TARGET_OS" >> config.mak
+echo "TARGET_OS=$targetos" >> config.mak
 if test "$cpu" = "x86" ; then
   echo "TARGET_ARCH_X86=yes" >> config.mak
   echo "#define ARCH_X86 1" >> $TMPH
@@ -1731,6 +1740,7 @@ if test "$vhook" = "yes" ; then
   echo "#define HAVE_VHOOK 1" >> $TMPH
 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'`
 lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
@@ -1750,10 +1760,14 @@ if test "$lshared" = "yes" ; then
   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
 fi
+echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
 echo "EXTRALIBS=$extralibs" >> config.mak
 
 # If you do not want to use encoders, disable them.
@@ -1803,6 +1817,11 @@ if test "$pp" = "yes" ; then
   echo "CONFIG_PP=yes" >> config.mak
 fi
 
+if test "$swscaler" = "yes" ; then
+  echo "#define CONFIG_SWSCALER 1" >> $TMPH
+  echo "CONFIG_SWSCALER=yes" >> config.mak
+fi
+
 # MPEG audio high precision mode
 if test "$mpegaudio_hp" = "yes" ; then
   echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
@@ -1885,11 +1904,6 @@ if test "$vorbis" = "yes" ; then
   echo "CONFIG_LIBVORBIS=yes" >> config.mak
 fi
 
-if test "$theora" = "yes" ; then
-  echo "#define CONFIG_LIBTHEORA 1" >> $TMPH
-  echo "CONFIG_LIBTHEORA=yes" >> config.mak
-fi
-
 if test "$faad" = "yes" ; then
   echo "#define CONFIG_FAAD 1" >> $TMPH
   echo "CONFIG_FAAD=yes" >> config.mak
@@ -1942,17 +1956,17 @@ if test "$os2" = "yes" ; then
   echo "#define HAVE_THREADS 1" >> $TMPH
 fi
 
-if test "$TARGET_OS" = "SunOS" ; then
+if test "$targetos" = "SunOS" ; then
   echo "#define CONFIG_SUNOS 1" >> $TMPH
 fi
 
-if test "$TARGET_OS" = "BeOS" ; then
+if test "$targetos" = "BeOS" ; then
   echo "HAVE_BEOSTHREADS=yes" >> config.mak
   echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
   echo "#define HAVE_THREADS 1" >> $TMPH
 fi
 
-if test "$darwin" = "yes"; then
+if test "$targetos" = "Darwin"; then
   echo "#define CONFIG_DARWIN 1"  >> $TMPH
   echo "CONFIG_DARWIN=yes" >> config.mak
 fi
@@ -2028,6 +2042,7 @@ if test "$source_path_used" = "yes" ; then
          libavcodec/liba52 \
          libpostproc \
          libavutil \
+         libswscale \
          tests \
          vhook \
          "
@@ -2037,6 +2052,7 @@ if test "$source_path_used" = "yes" ; then
           libavcodec/Makefile \
           libpostproc/Makefile \
           libavutil/Makefile \
+          libswscale/Makefile \
           tests/Makefile \
           vhook/Makefile \
           doc/Makefile \
@@ -2094,6 +2110,13 @@ if test "$amr_if2" = "yes" ; then
   echo "AMR_CFLAGS=-DIF2=1" >> config.mak
 fi
 
+# Apparently it's not possible to portably echo a backslash.
+if test "$asmalign_pot" = "yes" ; then
+  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
+else
+  printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
+fi
+
 
 for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
     echo "#define CONFIG_`echo $codec | tr a-z A-Z` 1" >> $TMPH
@@ -2114,7 +2137,7 @@ rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
 # build pkg-config files libav*.pc and libpostproc.pc
 # libavutil.pc
 cat <<EOF >libavutil.pc
-prefix=$prefix
+prefix=$PREFIX
 exec_prefix=\${prefix}
 libdir=\${exec_prefix}/lib
 includedir=\${prefix}/include
@@ -2145,7 +2168,7 @@ EOF
 
 # libavcodec.pc
 cat <<EOF >libavcodec.pc
-prefix=$prefix
+prefix=$PREFIX
 exec_prefix=\${prefix}
 libdir=\${exec_prefix}/lib
 includedir=\${prefix}/include
@@ -2176,7 +2199,7 @@ EOF
 
 # libavformat.pc
 cat <<EOF >libavformat.pc
-prefix=$prefix
+prefix=$PREFIX
 exec_prefix=\${prefix}
 libdir=\${exec_prefix}/lib
 includedir=\${prefix}/include
@@ -2208,7 +2231,7 @@ EOF
 
 # libpostproc.pc
 cat <<EOF >libpostproc.pc
-prefix=$prefix
+prefix=$PREFIX
 exec_prefix=\${prefix}
 libdir=\${exec_prefix}/lib
 includedir=\${prefix}/include
@@ -2236,3 +2259,34 @@ Conflicts:
 Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
 Cflags: -I\${includedir}
 EOF
+
+# libswscale.pc
+cat <<EOF >libswscale.pc
+prefix=$PREFIX
+exec_prefix=\${prefix}
+libdir=\${exec_prefix}/lib
+includedir=\${prefix}/include
+
+Name: libswscale
+Description: FFmpeg image rescaling library
+Version: $sws_version
+Requires: $pkg_requires libavutil = $lavu_version
+Conflicts:
+Libs: -L\${libdir} -lswscale
+Cflags: -I\${includedir} -I\${includedir}/swscale
+EOF
+
+cat <<EOF >libswscale-uninstalled.pc
+prefix=
+exec_prefix=
+libdir=\${pcfiledir}/libswscale
+includedir=\${pcfiledir}/libswscale
+
+Name: libswscale
+Description: FFmpeg image rescaling library
+Version: $sws_version
+Requires: $pkg_requires libavutil = $lavu_version
+Conflicts:
+Libs: \${libdir}/${LIBPREF}swscale${LIBSUF}
+Cflags: -I\${includedir}
+EOF