X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=a4607a45177cbff8c7d4dd6539d08c25f21916db;hb=6c81ca99067f303b3ce835385e14a91adbd62ac7;hp=3f61ad8975b7d4ce43e5bb99a876bf59d217ba34;hpb=8ac17293d328b3642872445fc77e1f98eca90175;p=ffmpeg diff --git a/configure b/configure index 3f61ad8975b..a4607a45177 100755 --- a/configure +++ b/configure @@ -1,20 +1,42 @@ #!/bin/sh # -# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard +# FFmpeg configure script +# +# Copyright (c) 2000, 2001, 2002 Fabrice Bellard +# Copyright (c) 2005-2006 Diego Biurrun +# Copyright (c) 2005-2006 Mans Rullgard # # make sure we are running under a compatible shell +# try to make this part work with most shells + +try_exec(){ + type "$1" >/dev/null 2>&1 && exec "$@" +} + 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 - export FFMPEG_CONFIGURE_EXEC - exec bash "$0" "$@" - exec ksh "$0" "$@" - exec /usr/xpg4/bin/sh "$0" "$@" + export FF_CONF_EXEC + if test "0$FF_CONF_EXEC" -lt 1; then + FF_CONF_EXEC=1 + try_exec bash "$0" "$@" + fi + if test "0$FF_CONF_EXEC" -lt 2; then + FF_CONF_EXEC=2 + try_exec ksh "$0" "$@" + fi + if test "0$FF_CONF_EXEC" -lt 3; then + FF_CONF_EXEC=3 + try_exec /usr/xpg4/bin/sh "$0" "$@" fi echo "No compatible shell script interpreter found." + echo "This configure script requires a POSIX compatible shell" + echo "such as bash or ksh." + if test "$BASH_VERSION" = '2.04.0(1)-release'; then + echo "This bash version ($BASH_VERSION) is broken on your platform." + echo "Upgrade to a later version if available." + fi exit 1 fi @@ -31,6 +53,7 @@ show_help(){ 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-libnut enable NUT support via libnut [default=no]" echo " --enable-libogg enable Ogg support via libogg [default=no]" echo " --enable-vorbis enable Vorbis support via libvorbis [default=no]" echo " --enable-faad enable FAAD support via libfaad [default=no]" @@ -72,12 +95,13 @@ show_help(){ echo " --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]" echo " --extra-libs=ELIBS add ELIBS [$ELIBS]" echo " --build-suffix=SUFFIX suffix for application specific build []" - echo " --cpu=CPU force cpu to CPU [$cpu]" - echo " --tune=CPU tune code for a particular CPU" - echo " (may fail or perform badly on other CPUs)" + echo " --arch=ARCH select architecture [$arch]" + echo " --cpu=CPU selects the minimum cpu required (affects + instruction selection, may crash on older CPUs)" echo " --powerpc-perf-enable enable performance report on PPC" echo " (requires enabling PMC)" echo " --disable-mmx disable MMX usage" + echo " --disable-armv5te disable armv5te usage" echo " --disable-iwmmxt disable iwmmxt usage" echo " --disable-altivec disable AltiVec usage" echo " --disable-audio-oss disable OSS audio support [default=no]" @@ -89,14 +113,15 @@ show_help(){ 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" echo " --enable-gprof enable profiling with gprof [$gprof]" echo " --disable-debug disable debugging symbols" echo " --disable-opts disable compiler optimizations" + echo " --enable-extra-warnings enable more compiler warnings" 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" echo " --enable-small optimize for size instead of speed" @@ -159,8 +184,55 @@ EOF exit 1 } +# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z" +toupper(){ + echo "$@" | tr '[a-z]' '[A-Z]' +} + +set_all(){ + value=$1 + shift + for var in $*; do + eval $var=$value + done +} + +enable(){ + set_all yes $* +} + +disable(){ + set_all no $* +} + enabled(){ - eval test "\$$1" = "yes" + eval test "x\$$1" = "xyes" +} + +enabled_all(){ + for opt; do + enabled $opt || return 1 + done +} + +enabled_any(){ + for opt; do + enabled $opt && return 0 + done +} + +print_config(){ + pfx=$1 + header=$2 + makefile=$3 + shift 3 + for cfg; do + if enabled $cfg; then + ucname="${pfx}`toupper $cfg`" + echo "#define ${ucname} 1" >> $header + echo "${ucname}=yes" >> $makefile + fi + done } flags_saved(){ @@ -266,6 +338,10 @@ check_header(){ #include <$header> int x; EOF + err=$? + var=`echo $header | sed 's/[^[:alnum:]]/_/g'` + test "$err" = 0 && enable $var || disable $var + return $err } check_func(){ @@ -278,6 +354,9 @@ int main(){ $func(); } EOF + err=$? + test "$err" = 0 && enable $func || disable $func + return $err } check_lib(){ @@ -304,11 +383,78 @@ require(){ check_lib $header $func "$@" || die "ERROR: $name not found" } -filter_out(){ - pattern="$1" - shift - echo "$@" | sed "s%\\<$pattern\\>%%g" -} +CONFIG_LIST=' + encoders + decoders + parsers + muxers + demuxers + a52 + a52bin + amr + amr_nb + amr_nb_fixed + amr_wb + audio_beos + audio_oss + avisynth + beos_netserver + bktr + dc1394 + dts + dv1394 + faac + faad + faadbin + ffmpeg + ffplay + ffserver + gpl + ipv6 + libgsm + libnut + libogg + libvorbis + memalign_hack + mp3lame + mpegaudio_hp + network + pp + protocols + swscaler + vhook + video4linux + video4linux2 + wince + x264 + xvid + zlib +' + +HAVE_LIST=' + altivec_h + beosthreads + byteswap_h + dcbzl + dlfcn_h + dlopen + freetype2 + gprof + imlib2 + inet_aton + localtime_r + lrintf + malloc_h + memalign + mlib + os2 + os2threads + pthreads + sdl + sdl_video_size + threads + w32threads +' # set temporary file name if test ! -z "$TMPDIR" ; then @@ -341,70 +487,74 @@ ar="ar" ranlib="ranlib" make="make" strip="strip" -cpu=`uname -m` -tune="generic" +arch=`uname -m` +cpu="generic" powerpc_perf="no" mmx="default" +cmov="no" +cmov_is_fast="no" +armv5te="default" iwmmxt="default" altivec="default" +dcbzl="no" mmi="default" -case "$cpu" in +case "$arch" in i386|i486|i586|i686|i86pc|BePC) - cpu="x86" + arch="x86_32" ;; x86_64|amd64) - cpu="x86" + arch="x86_32" 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 - cpu="x86_64" + arch="x86_64" fi fi ;; - # armv4l is a subset of armv5tel - armv4l|armv5tel) - cpu="armv4l" + # armv4l is a subset of armv[567]*l + arm|armv[4567]*l) + arch="armv4l" ;; alpha) - cpu="alpha" + arch="alpha" ;; "Power Macintosh"|ppc|ppc64|powerpc) - cpu="powerpc" + arch="powerpc" ;; mips|mipsel|IP*) - cpu="mips" + arch="mips" ;; sun4u|sparc64) - cpu="sparc64" + arch="sparc64" ;; sparc) - cpu="sparc" + arch="sparc" ;; sh4) - cpu="sh4" + arch="sh4" ;; parisc|parisc64) - cpu="parisc" + arch="parisc" ;; s390|s390x) - cpu="s390" + arch="s390" ;; m68k) - cpu="m68k" + arch="m68k" ;; ia64) - cpu="ia64" + arch="ia64" ;; bfin) - cpu="bfin" + arch="bfin" ;; *) - cpu="unknown" + arch="unknown" ;; esac gprof="no" -v4l="yes" -v4l2="yes" +video4linux="yes" +video4linux2="yes" bktr="no" audio_oss="yes" audio_beos="no" @@ -415,8 +565,9 @@ ipv6="yes" zlib="yes" libgsm="no" mp3lame="no" +libnut="no" libogg="no" -vorbis="no" +libvorbis="no" faad="no" faadbin="no" faac="no" @@ -427,33 +578,32 @@ a52bin="no" dts="no" pp="no" mingw32="no" -mingwce="no" +wince="no" os2="no" lstatic="yes" lshared="no" optimize="yes" debug="yes" +extrawarnings="no" dostrip="yes" installstrip="-s" extralibs="-lm" -simpleidct="yes" bigendian="no" -inttypes="yes" -emu_fast_int="no" vhook="default" avisynth="no" -dlfcn="no" +dlfcn_h="no" dlopen="no" mpegaudio_hp="yes" SHFLAGS='-shared -Wl,-soname,$@' -VHOOKSHFLAGS="$SHFLAGS" -netserver="no" -need_inet_aton="no" +VHOOKSHFLAGS='$(SHFLAGS)' +beos_netserver="no" protocols="yes" +ffmpeg="yes" ffserver="yes" ffplay="yes" LIBOBJFLAGS="" FFLDFLAGS=-Wl,--warn-common +LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' FFSERVERLDFLAGS=-Wl,-E LDCONFIG="ldconfig" LIBPREF="lib" @@ -470,11 +620,11 @@ amr_nb="no" amr_wb="no" amr_nb_fixed="no" amr_if2="no" -sunmlib="no" +mlib="no" pthreads="no" swscaler="no" gpl="no" -memalignhack="no" +memalign_hack="no" asmalign_pot="unknown" LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"' @@ -498,35 +648,34 @@ esac SHFLAGS=-nostart # disable Linux things audio_oss="no" -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" dv1394="no" # enable BeOS things audio_beos="yes" +beosthreads="yes" # no need for libm, but the inet stuff # Check for BONE if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then extralibs="-lbind -lsocket" else -netserver="yes" -need_inet_aton="yes" +beos_netserver="yes" extralibs="-lnet" fi ;; SunOS) -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" audio_oss="no" dv1394="no" make="gmake" FFLDFLAGS="" FFSERVERLDFLAGS="" SHFLAGS="-shared -Wl,-h,\$@" -need_inet_aton="yes" add_extralibs "-lsocket -lnsl" ;; NetBSD) -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" bktr="yes" audio_oss="yes" dv1394="no" @@ -534,8 +683,8 @@ make="gmake" add_extralibs "-lossaudio" ;; OpenBSD) -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" bktr="yes" audio_oss="yes" dv1394="no" @@ -545,8 +694,8 @@ LDCONFIG="ldconfig -m \$(shlibdir)" add_extralibs "-lossaudio" ;; FreeBSD) -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" bktr="yes" audio_oss="yes" dv1394="no" @@ -554,16 +703,16 @@ make="gmake" add_cflags "-pthread" ;; GNU/kFreeBSD) -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" bktr="yes" audio_oss="yes" dv1394="no" add_cflags "-pthread" ;; BSD/OS) -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" bktr="yes" audio_oss="yes" dv1394="no" @@ -574,8 +723,8 @@ installstrip="" ;; Darwin) cc="cc" -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" audio_oss="no" dv1394="no" SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)" @@ -597,12 +746,13 @@ mingw32="yes" ;; CYGWIN*) targetos=CYGWIN -shlibdir='${PREFIX}/bin' -v4l="no" -v4l2="no" +shlibdir="$bindir" +video4linux="no" +video4linux2="no" audio_oss="yes" dv1394="no" -vhook="no" +VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil' +VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)' extralibs="" EXESUF=".exe" SLIBPREF="cyg" @@ -612,12 +762,13 @@ SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a' ;; Linux) +LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS" ;; IRIX*) targetos=IRIX ranlib="echo ignoring ranlib" -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" audio_oss="no" make="gmake" ;; @@ -637,14 +788,14 @@ SLIBSUF=".dll" EXESUF=".exe" extralibs="" pkg_requires="" -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" audio_oss="no" dv1394="no" ffserver="no" vhook="no" os2="yes" - +os2threads="yes" ;; *) targetos="${targetos}-UNKNOWN" @@ -652,13 +803,15 @@ targetos="${targetos}-UNKNOWN" esac # find source path -source_path="`dirname $0`" +source_path="`dirname \"$0\"`" source_path_used="yes" if test -z "$source_path" -o "$source_path" = "." ; then - source_path=`pwd` + source_path="`pwd`" source_path_used="no" 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 @@ -670,11 +823,13 @@ for opt do FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt " done -ENCODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_encoder)' $source_path/libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'` -DECODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_decoder)' $source_path/libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'` -PARSER_LIST=`grep 'av_register_codec_parser(&[a-z]' $source_path/libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'` -MUXER_LIST=`grep 'av_register_output_format(&[a-z]' $source_path/libavformat/allformats.c | sed 's/.*&\(.*\)).*/\1/'` -DEMUXER_LIST=`grep 'av_register_input_format(&[a-z]' $source_path/libavformat/allformats.c | sed 's/.*&\(.*\)).*/\1/'` +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"` + +enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST $DEMUXER_LIST for opt do optval="${opt#*=}" @@ -683,9 +838,9 @@ for opt do ;; --log=*) logging="$optval" ;; - --prefix=*) PREFIX="$optval"; force_prefix=yes + --prefix=*) PREFIX="$optval" ;; - --libdir=*) libdir="$optval"; force_libdir=yes + --libdir=*) libdir="$optval" ;; --shlibdir=*) shlibdir="$optval" ;; @@ -705,29 +860,31 @@ for opt do ;; --extra-cflags=*) add_cflags "$optval" ;; - --extra-ldflags=*) EXTRALDFLAGS="$optval" + --extra-ldflags=*) add_ldflags "$optval" ;; - --extra-libs=*) extralibs="$optval" + --extra-libs=*) add_extralibs "$optval" ;; --build-suffix=*) BUILDSUF="$optval" ;; - --cpu=*) cpu="$optval" + --arch=*) arch="$optval" ;; - --tune=*) tune="$optval" + --cpu=*) cpu="$optval" ;; --powerpc-perf-enable) powerpc_perf="yes" ;; --disable-mmx) mmx="no" ;; + --disable-armv5te) armv5te="no" + ;; --disable-iwmmxt) iwmmxt="no" ;; --disable-altivec) altivec="no" ;; --enable-gprof) gprof="yes" ;; - --disable-v4l) v4l="no" + --disable-v4l) video4linux="no" ;; - --disable-v4l2) v4l2="no" + --disable-v4l2) video4linux2="no" ;; --disable-bktr) bktr="no" ;; @@ -755,10 +912,12 @@ for opt do ;; --enable-mp3lame) mp3lame="yes" ;; + --enable-libnut) libnut="yes" + ;; --enable-libogg) libogg="yes" pkg_requires="$pkg_requires ogg >= 1.1" ;; - --enable-vorbis) vorbis="yes" + --enable-vorbis) libvorbis="yes" pkg_requires="$pkg_requires vorbis vorbisenc" ;; --enable-faad) faad="yes" @@ -778,11 +937,9 @@ for opt do ;; --disable-vhook) vhook="no" ;; - --disable-simple_idct) simpleidct="no" - ;; --enable-mingw32) mingw32="yes" ;; - --enable-mingwce) mingwce="yes" + --enable-mingwce) wince="yes" ;; --enable-static) lstatic="yes" ;; @@ -796,10 +953,14 @@ for opt do ;; --disable-opts) optimize="no" ;; + --enable-extra-warnings) extrawarnings="yes" + ;; --disable-mpegaudio-hp) mpegaudio_hp="no" ;; --disable-protocols) protocols="no"; network="no"; ffserver="no" ;; + --disable-ffmpeg) ffmpeg="no" + ;; --disable-ffserver) ffserver="no" ;; --disable-ffplay) ffplay="no" @@ -814,7 +975,7 @@ for opt do ;; --enable-amr_if2) amr="yes"; amr_if2="yes" ;; - --enable-sunmlib) sunmlib="yes" + --enable-sunmlib) mlib="yes" ;; --enable-pthreads) pthreads="yes" ;; @@ -822,39 +983,39 @@ for opt do ;; --enable-gpl) gpl="yes" ;; - --enable-memalign-hack) memalignhack="yes" + --enable-memalign-hack) memalign_hack="yes" ;; --disable-strip) dostrip="no" ;; - --enable-encoder=*) ENCODER_LIST="$ENCODER_LIST ${optval}_encoder" + --enable-encoder=*) enable ${optval}_encoder ;; - --enable-decoder=*) DECODER_LIST="$DECODER_LIST ${optval}_decoder" + --enable-decoder=*) enable ${optval}_decoder ;; - --disable-encoder=*) ENCODER_LIST="`filter_out ${optval}_encoder $ENCODER_LIST`" + --disable-encoder=*) disable ${optval}_encoder ;; - --disable-decoder=*) DECODER_LIST="`filter_out ${optval}_decoder $DECODER_LIST`" + --disable-decoder=*) disable ${optval}_decoder ;; - --disable-encoders) ENCODER_LIST="" + --disable-encoders) disable $ENCODER_LIST ;; - --disable-decoders) DECODER_LIST="" + --disable-decoders) disable $DECODER_LIST ;; - --enable-muxer=*) MUXER_LIST="$MUXER_LIST ${optval}_muxer" + --enable-muxer=*) enable ${optval}_muxer ;; - --disable-muxer=*) MUXER_LIST="`filter_out ${optval}_muxer $MUXER_LIST`" + --disable-muxer=*) disable ${optval}_muxer ;; - --disable-muxers) MUXER_LIST=""; ffserver="no" + --disable-muxers) disable $MUXER_LIST; ffserver="no" ;; - --enable-demuxer=*) DEMUXER_LIST="$DEMUXER_LIST ${optval}_demuxer" + --enable-demuxer=*) enable ${optval}_demuxer ;; - --disable-demuxer=*) DEMUXER_LIST="`filter_out ${optval}_demuxer $DEMUXER_LIST`" + --disable-demuxer=*) disable ${optval}_demuxer ;; - --disable-demuxers) DEMUXER_LIST="" + --disable-demuxers) disable $DEMUXER_LIST ;; - --enable-parser=*) PARSER_LIST="$PARSER_LIST ${optval}_parser" + --enable-parser=*) enable ${optval}_parser ;; - --disable-parser=*) PARSER_LIST="`filter_out ${optval}_parser $PARSER_LIST`" + --disable-parser=*) disable ${optval}_parser ;; - --disable-parsers) PARSER_LIST="" + --disable-parsers) disable $PARSER_LIST ;; --help) show_help ;; @@ -874,7 +1035,7 @@ else logfile=/dev/null fi -if test "$mingw32" = "yes" -o "$mingwce" = "yes"; then +if test "$mingw32" = "yes" -o "$wince" = "yes"; then if test "$lshared" = "yes" && test "$lstatic" = "yes" ; then cat <$TMPE 2>>$logfile <>$logfile 2>&1 +if ! $TMPE >>$logfile 2>&1; then + cat <&1 | grep version | grep Apple`"; then add_cflags "-faltivec" @@ -1143,11 +1329,11 @@ if test $cpu = "powerpc"; then fi fi -check_header altivec.h && _altivec_h=yes || _altivec_h=no +check_header altivec.h # check if our compiler supports Motorola AltiVec C API if test $altivec = "yes"; then - if test $_altivec_h = "yes"; then + if test $altivec_h = "yes"; then inc_altivec_h="#include " else inc_altivec_h= @@ -1162,9 +1348,29 @@ int main(void) { EOF fi +# check armv5te instructions support +if test $armv5te = "default" -a $arch = "armv4l"; then + armv5te=no + check_cc < -int main(void) { -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -return 0; -#else -#error no vector builtins -#endif -} -EOF - -# test for mm3dnow.h -test "$cpu" = "x86_64" && march=k8 || march=athlon -check_cc -march=$march < -int main(void) { -__m64 b1; -b1 = _m_pswapd(b1); -_m_femms(); -return 0; -} -EOF - # --- # big/little-endian test if test "$cross_compile" = "no"; then @@ -1216,65 +1397,56 @@ int main(int argc, char ** argv){ EOF else # programs cannot be launched if cross compiling, so make a static guess - if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then + if test "$arch" = "powerpc" -o "$arch" = "mips" ; then bigendian="yes" fi fi -# --- -# *inttypes.h* test -check_header inttypes.h || inttypes=no - -# --- -# *int_fast* test -check_cc < -int main(int argc, char ** argv){ - volatile uint_fast64_t i=0x01234567; - return 0; -} -EOF - # --- # check availability of some header files -_memalign=no -_malloc_h=no -if check_header malloc.h; then - _malloc_h=yes - _memalign=yes - check_func memalign || _memalign="no" -fi +check_header malloc.h +check_func memalign -if test "$_memalign" = "no" -a "$mmx" = "yes" -a \ - "$memalignhack" != "yes" -a "$targetos" != "Darwin" -a \ +if test "$memalign" = "no" -a "$mmx" = "yes" -a \ + "$memalign_hack" != "yes" -a "$targetos" != "Darwin" -a \ "$targetos" != "FreeBSD" ; then die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack." fi -check_func localtime_r && localtime_r=yes || localtime_r=no +check_header byteswap.h + +check_func inet_aton +check_func localtime_r enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no" # check for some common methods of building with pthread support # do this before the optional library checks as some of them require pthreads if enabled pthreads; then - { check_cflags -pthread && check_ldflags -pthread; } || - { check_cflags -pthreads && check_ldflags -pthreads; } || - check_lib pthread.h pthread_create -lpthread || - check_func pthread_create || - die "ERROR: can't find pthreads library" + if check_func pthread_create; then + : + elif check_func pthread_create -pthread; then + add_cflags -pthread + add_ldflags -pthread + elif check_func pthread_create -pthreads; then + add_cflags -pthreads + add_ldflags -pthreads + elif ! check_lib pthread.h pthread_create -lpthread; then + die "ERROR: can't find pthreads library" + fi fi # these are off by default, so fail if requested and not available -enabled dts && require libdts dts.h dts_init -ldts +enabled dts && require libdts dts.h dts_init -ldts -lm 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 mp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm +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 dc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 -enabled sunmlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib +enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib # Ugh, faac uses stdcall calling convention on win32 so we can't use # the generic test functions @@ -1325,7 +1497,7 @@ fi # test for lrintf in math.h -check_exec < int main( void ) { return (lrintf(3.999f) > 0)?0:1; } @@ -1340,33 +1512,39 @@ done # dlopen/dlfcn.h probing -check_header dlfcn.h && dlfcn=yes +check_header dlfcn.h -temp_extralibs -ldl if check_func dlopen; then - dlopen=yes - ldl=-ldl -fi -restore_flags - -if check_func dlopen; then - dlopen=yes ldl= +elif check_func dlopen -ldl; then + ldl=-ldl fi if test "$vhook" = "default"; then vhook="$dlopen" fi -if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then +if enabled_any vhook a52bin faadbin; then add_extralibs $ldl fi +if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then + vhook="no" + echo + echo "At the moment vhooks don't work on Cygwin static builds." + echo "Patches welcome." + echo +fi + if enabled vhook; then check_ldflags -rdynamic check_ldflags -export-dynamic fi +if enabled audio_beos; then + add_extralibs "-lmedia -lbe" +fi + ########################################## # imlib check @@ -1455,7 +1633,7 @@ int main( void ) { EOF # check for video4linux2 --- V4L2_PIX_FMT_YUV420 -enabled v4l2 && check_cc < #include #include @@ -1469,9 +1647,13 @@ enabled debug && add_cflags -g check_cflags -Wdeclaration-after-statement check_cflags -Wall check_cflags -Wno-switch +check_cflags -Wdisabled-optimization +check_cflags -Wpointer-arith +check_cflags -Wredundant-decls +enabled extrawarnings && check_cflags -Winline # add some linker flags -check_ldflags '-Wl,--as-needed' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavformat' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' +check_ldflags $LDLATEFLAGS # not all compilers support -Os test "$optimize" = "small" && check_cflags -Os @@ -1489,7 +1671,7 @@ fi if test "$lshared" = "yes" ; then # LIBOBJFLAGS may have already been set in the OS configuration if test -z "$LIBOBJFLAGS" ; then - case "$cpu" in + case "$arch" in x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;; esac fi @@ -1500,6 +1682,9 @@ if test "$gprof" = "yes" ; then add_ldflags "-p" fi +VHOOKCFLAGS="-fPIC $CFLAGS" +test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic + # find if .align arg is power-of-two or not if test $asmalign_pot = "unknown"; then asmalign_pot="no" @@ -1510,33 +1695,34 @@ echo "install prefix $PREFIX" echo "source path $source_path" echo "C compiler $cc" echo "make $make" -echo "CPU $cpu ($tune)" +echo "ARCH $arch ($cpu)" if test "$BUILDSUF" != ""; then echo "build suffix $BUILDSUF" fi echo "big-endian $bigendian" -echo "inttypes.h $inttypes" -echo "broken inttypes.h $emu_fast_int" -if test $cpu = "x86" -o $cpu = "x86_64"; then +if test $arch = "x86_32" -o $arch = "x86_64"; then echo "MMX enabled $mmx" - echo "Vector Builtins $builtin_vector" - echo "3DNow! Builtins $mm3dnow" + echo "CMOV enabled $cmov" + echo "CMOV is fast $cmov_is_fast" fi -if test $cpu = "armv4l"; then +if test $arch = "armv4l"; then + echo "ARMv5TE enabled $armv5te" echo "IWMMXT enabled $iwmmxt" fi -if test $cpu = "mips"; then +if test $arch = "mips"; then echo "MMI enabled $mmi" fi -if test $cpu = "powerpc"; then +if test $arch = "powerpc"; then echo "AltiVec enabled $altivec" + echo "dcbzl available $dcbzl" fi echo "gprof enabled $gprof" echo "zlib enabled $zlib" echo "libgsm enabled $libgsm" echo "mp3lame enabled $mp3lame" +echo "libnut enabled $libnut" echo "libogg enabled $libogg" -echo "Vorbis enabled $vorbis" +echo "Vorbis enabled $libvorbis" echo "FAAD enabled $faad" echo "faadbin enabled $faadbin" echo "FAAC enabled $faac" @@ -1563,7 +1749,7 @@ if test "$vhook" = "yes"; then echo "Imlib2 support $imlib2" echo "FreeType support $freetype2" fi -echo "Sun medialib support" $sunmlib +echo "Sun medialib support" $mlib echo "pthreads support" $pthreads echo "AMR-NB float support" $amr_nb echo "AMR-NB fixed support" $amr_nb_fixed @@ -1582,8 +1768,6 @@ fi echo "Creating config.mak and config.h..." -date >> config.log -echo " $0 $FFMPEG_CONFIGURATION" >> config.log 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 @@ -1607,9 +1791,6 @@ else echo "INSTALLSTRIP=" >> config.mak fi -VHOOKCFLAGS="-fPIC $CFLAGS" -test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic - echo "OPTFLAGS=$CFLAGS" >> config.mak echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak echo "LDFLAGS=$LDFLAGS" >> config.mak @@ -1617,6 +1798,7 @@ echo "LDCONFIG=$LDCONFIG" >> config.mak echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak echo "SHFLAGS=$SHFLAGS" >> config.mak echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak +echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak echo "BUILD_STATIC=$lstatic" >> config.mak echo "BUILDSUF=$BUILDSUF" >> config.mak @@ -1631,82 +1813,51 @@ echo "SLIBPREF=$SLIBPREF" >> config.mak echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak echo "EXESUF=\${BUILDSUF}$EXESUF" >> 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 -elif test "$cpu" = "x86_64" ; then - echo "TARGET_ARCH_X86_64=yes" >> config.mak - echo "#define ARCH_X86_64 1" >> $TMPH -elif test "$cpu" = "armv4l" ; then - echo "TARGET_ARCH_ARMV4L=yes" >> config.mak - echo "#define ARCH_ARMV4L 1" >> $TMPH -elif test "$cpu" = "alpha" ; then - echo "TARGET_ARCH_ALPHA=yes" >> config.mak - echo "#define ARCH_ALPHA 1" >> $TMPH -elif test "$cpu" = "sparc64" ; then - echo "TARGET_ARCH_SPARC64=yes" >> config.mak - echo "#define ARCH_SPARC64 1" >> $TMPH - echo "TARGET_ARCH_SPARC=yes" >> config.mak - echo "#define ARCH_SPARC 1" >> $TMPH -elif test "$cpu" = "sparc" ; then - echo "TARGET_ARCH_SPARC=yes" >> config.mak - echo "#define ARCH_SPARC 1" >> $TMPH -elif test "$cpu" = "powerpc" ; then - echo "TARGET_ARCH_POWERPC=yes" >> config.mak - echo "#define ARCH_POWERPC 1" >> $TMPH - if test $POWERPCMODE = "32bits"; then - echo "#define POWERPC_MODE_32BITS 1" >> $TMPH - else - echo "#define POWERPC_MODE_64BITS 1" >> $TMPH - fi - if test "$powerpc_perf" = "yes"; then - echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH - fi -elif test "$cpu" = "mips" ; then - echo "TARGET_ARCH_MIPS=yes" >> config.mak - echo "#define ARCH_MIPS 1" >> $TMPH -elif test "$cpu" = "sh4" ; then - echo "TARGET_ARCH_SH4=yes" >> config.mak - echo "#define ARCH_SH4 1" >> $TMPH -elif test "$cpu" = "parisc" ; then - echo "TARGET_ARCH_PARISC=yes" >> config.mak - echo "#define ARCH_PARISC 1" >> $TMPH -elif test "$cpu" = "s390" ; then - echo "TARGET_ARCH_S390=yes" >> config.mak - echo "#define ARCH_S390 1" >> $TMPH -elif test "$cpu" = "m68k" ; then - echo "TARGET_ARCH_M68K=yes" >> config.mak - echo "#define ARCH_M68K 1" >> $TMPH -elif test "$cpu" = "ia64" ; then - echo "TARGET_ARCH_IA64=yes" >> config.mak - echo "#define ARCH_IA64 1" >> $TMPH -elif test "$cpu" = "bfin" ; then - echo "TARGET_ARCH_BFIN=yes" >> config.mak - echo "#define ARCH_BFIN 1" >> $TMPH -fi -echo "#define TUNECPU $TUNECPU" >> $TMPH + +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 + if test "$powerpc_perf" = "yes"; then + echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH + fi + ;; + sparc64) + echo "TARGET_ARCH_SPARC=yes" >> config.mak + echo "#define ARCH_SPARC 1" >> $TMPH + ;; +esac + if test "$bigendian" = "yes" ; then echo "WORDS_BIGENDIAN=yes" >> config.mak echo "#define WORDS_BIGENDIAN 1" >> $TMPH fi -if test "$inttypes" != "yes" ; then - echo "#define EMULATE_INTTYPES 1" >> $TMPH -fi -if test "$emu_fast_int" = "yes" ; then - echo "#define EMULATE_FAST_INT 1" >> $TMPH -fi if test "$mmx" = "yes" ; then echo "TARGET_MMX=yes" >> config.mak echo "#define HAVE_MMX 1" >> $TMPH echo "#define __CPU__ 586" >> $TMPH fi -if test "$builtin_vector" = "yes" ; then - echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak - echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH +if test "$cmov" = "yes" ; then + echo "TARGET_CMOV=yes" >> config.mak + echo "#define HAVE_CMOV 1" >> $TMPH +fi +if test "$cmov_is_fast" = "yes" ; then + echo "TARGET_CMOV_IS_FAST=yes" >> config.mak + echo "#define CMOV_IS_FAST 1" >> $TMPH fi -if test "$mm3dnow" = "yes" ; then - echo "TARGET_BUILTIN_3DNOW=yes" >> config.mak - echo "#define HAVE_MM3DNOW 1" >> $TMPH +if test "$armv5te" = "yes" ; then + echo "TARGET_ARMV5TE=yes" >> config.mak + echo "#define HAVE_ARMV5TE 1" >> $TMPH fi if test "$iwmmxt" = "yes" ; then echo "TARGET_IWMMXT=yes" >> config.mak @@ -1716,56 +1867,19 @@ if test "$mmi" = "yes" ; then echo "TARGET_MMI=yes" >> config.mak echo "#define HAVE_MMI 1" >> $TMPH fi + if test "$altivec" = "yes" ; then echo "TARGET_ALTIVEC=yes" >> config.mak echo "#define HAVE_ALTIVEC 1" >> $TMPH - echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH - echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH - if test "$_altivec_h" = "yes" ; then - echo "#define HAVE_ALTIVEC_H 1" >> $TMPH - else - echo "#undef HAVE_ALTIVEC_H" >> $TMPH - fi -fi -if test "$gprof" = "yes" ; then - echo "#define HAVE_GPROF 1" >> $TMPH -fi -if test "$localtime_r" = "yes" ; then - echo "#define HAVE_LOCALTIME_R 1" >> $TMPH -fi -if test "$imlib2" = "yes" ; then - echo "HAVE_IMLIB2=yes" >> config.mak -fi -if test "$freetype2" = "yes" ; then - echo "HAVE_FREETYPE2=yes" >> config.mak -fi -if test "$sunmlib" = "yes" ; then - echo "HAVE_MLIB=yes" >> config.mak - echo "#define HAVE_MLIB 1" >> $TMPH -fi -if test "$pthreads" = "yes" ; then - echo "HAVE_PTHREADS=yes" >> config.mak - echo "#define HAVE_PTHREADS 1" >> $TMPH - echo "#define HAVE_THREADS 1" >> $TMPH fi + if test "$sdl" = "yes" ; then - echo "CONFIG_SDL=yes" >> config.mak echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak - if test "$sdl_video_size" = "yes"; then - echo "#define HAVE_SDL_VIDEO_SIZE 1" >> $TMPH - fi fi if test "$texi2html" = "yes"; then echo "BUILD_DOC=yes" >> config.mak fi -if test "$have_lrintf" = "yes" ; then - echo "#define HAVE_LRINTF 1" >> $TMPH -fi -if test "$vhook" = "yes" ; then - echo "BUILD_VHOOK=yes" >> config.mak - 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'` @@ -1797,267 +1911,64 @@ 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. -if echo "$ENCODER_LIST" | grep -q encoder; then - echo "#define CONFIG_ENCODERS 1" >> $TMPH - echo "CONFIG_ENCODERS=yes" >> config.mak -fi - -# If you do not want to use decoders, disable them. -if echo "$DECODER_LIST" | grep -q decoder; then - echo "#define CONFIG_DECODERS 1" >> $TMPH - echo "CONFIG_DECODERS=yes" >> config.mak -fi - -# muxers -if echo "$MUXER_LIST" | grep -q muxer; then - echo "#define CONFIG_MUXERS 1" >> $TMPH - echo "CONFIG_MUXERS=yes" >> config.mak -fi - -# demuxers -if echo "$DEMUXER_LIST" | grep -q demuxer; then - echo "#define CONFIG_DEMUXERS 1" >> $TMPH - echo "CONFIG_DEMUXERS=yes" >> config.mak -fi - -# AC3 -if test "$a52" = "yes" ; then - echo "#define CONFIG_AC3 1" >> $TMPH - echo "CONFIG_AC3=yes" >> config.mak - - if test "$a52bin" = "yes" ; then - echo "#define CONFIG_A52BIN 1" >> $TMPH - echo "CONFIG_A52BIN=yes" >> config.mak - fi -fi - -# DTS -if test "$dts" = "yes" ; then - echo "#define CONFIG_DTS 1" >> $TMPH - echo "CONFIG_DTS=yes" >> config.mak -fi - -# PP -if test "$pp" = "yes" ; then - echo "#define CONFIG_PP 1" >> $TMPH - 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 -fi - -if test "$v4l" = "yes" ; then - echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH - echo "CONFIG_VIDEO4LINUX=yes" >> config.mak -fi - -if test "$v4l2" = "yes" ; then - echo "#define CONFIG_VIDEO4LINUX2 1" >> $TMPH - echo "CONFIG_VIDEO4LINUX2=yes" >> config.mak -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 -if test "$bktr" = "yes" ; then - echo "#define CONFIG_BKTR 1" >> $TMPH - echo "CONFIG_BKTR=yes" >> config.mak -fi +enabled_any pthreads beosthreads os2threads w32threads && enable threads -if test "$dv1394" = "yes" ; then - echo "#define CONFIG_DV1394 1" >> $TMPH - echo "CONFIG_DV1394=yes" >> config.mak -fi - -if test "$dc1394" = "yes" ; then - echo "#define CONFIG_DC1394 1" >> $TMPH - echo "CONFIG_DC1394=yes" >> config.mak -fi - -if test "$dlopen" = "yes" ; then - echo "#define CONFIG_HAVE_DLOPEN 1" >> $TMPH -fi - -if test "$dlfcn" = "yes" ; then - echo "#define CONFIG_HAVE_DLFCN 1" >> $TMPH -fi - -if test "$audio_oss" = "yes" ; then - echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH - echo "CONFIG_AUDIO_OSS=yes" >> config.mak -fi - -if test "$audio_beos" = "yes" ; then - echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH - echo "CONFIG_AUDIO_BEOS=yes" >> config.mak -fi - -if test "$network" = "yes" ; then - echo "#define CONFIG_NETWORK 1" >> $TMPH - echo "CONFIG_NETWORK=yes" >> config.mak -fi - -if test "$ipv6" = "yes" ; then - echo "#define CONFIG_IPV6 1" >> $TMPH -fi - -if test "$zlib" = "yes" ; then - echo "#define CONFIG_ZLIB 1" >> $TMPH - echo "CONFIG_ZLIB=yes" >> config.mak -fi - -if test "$libgsm" = "yes" ; then - echo "#define CONFIG_LIBGSM 1" >> $TMPH - echo "CONFIG_LIBGSM=yes" >> config.mak -fi - -if test "$mp3lame" = "yes" ; then - echo "#define CONFIG_MP3LAME 1" >> $TMPH - echo "CONFIG_MP3LAME=yes" >> config.mak -fi - -if test "$libogg" = "yes" ; then - echo "#define CONFIG_LIBOGG 1" >> $TMPH - echo "CONFIG_LIBOGG=yes" >> config.mak -fi - -if test "$vorbis" = "yes" ; then - echo "#define CONFIG_LIBVORBIS 1" >> $TMPH - echo "CONFIG_LIBVORBIS=yes" >> config.mak -fi - -if test "$faad" = "yes" ; then - echo "#define CONFIG_FAAD 1" >> $TMPH - echo "CONFIG_FAAD=yes" >> config.mak -fi - -if test "$faadbin" = "yes" ; then - echo "#define CONFIG_FAADBIN 1" >> $TMPH - echo "CONFIG_FAADBIN=yes" >> config.mak -fi - -if test "$faac" = "yes" ; then - echo "#define CONFIG_FAAC 1" >> $TMPH - echo "CONFIG_FAAC=yes" >> config.mak -fi - -if test "$xvid" = "yes" ; then - echo "#define CONFIG_XVID 1" >> $TMPH - echo "CONFIG_XVID=yes" >> config.mak -fi - -if test "$x264" = "yes" ; then - echo "#define CONFIG_X264 1" >> $TMPH - echo "CONFIG_X264=yes" >> config.mak -fi - -if test "$avisynth" = "yes" ; then - echo "#define CONFIG_AVISYNTH 1" >> $TMPH - echo "CONFIG_AVISYNTH=yes" >> config.mak -fi - -if test "$mingw32" = "yes" ; then - echo "CONFIG_MINGW=yes" >> config.mak - echo "HAVE_W32THREADS=yes" >> config.mak - echo "#define HAVE_W32THREADS 1" >> $TMPH - echo "#define HAVE_THREADS 1" >> $TMPH - echo "#ifndef __MINGW32__" >> $TMPH - echo "#define __MINGW32__ 1" >> $TMPH - echo "#endif" >> $TMPH -fi - -if test "$mingwce" = "yes" ; then - echo "CONFIG_MINGW=yes" >> config.mak - echo "#define CONFIG_WINCE 1" >> $TMPH - echo "CONFIG_WINCE=yes" >> config.mak - echo "#ifndef __MINGW32__" >> $TMPH - echo "#define __MINGW32__ 1" >> $TMPH - echo "#endif" >> $TMPH -fi - -if test "$os2" = "yes" ; then - echo "#define CONFIG_OS2 1" >> $TMPH - echo "CONFIG_OS2=yes" >> config.mak - echo "HAVE_OS2THREADS=yes" >> config.mak - echo "#define HAVE_OS2THREADS 1" >> $TMPH - echo "#define HAVE_THREADS 1" >> $TMPH -fi - -if test "$targetos" = "SunOS" ; then - echo "#define CONFIG_SUNOS 1" >> $TMPH -fi - -if test "$targetos" = "BeOS" ; then - echo "HAVE_BEOSTHREADS=yes" >> config.mak - echo "#define HAVE_BEOSTHREADS 1" >> $TMPH - echo "#define HAVE_THREADS 1" >> $TMPH -fi +print_config HAVE_ $TMPH config.mak $HAVE_LIST +print_config CONFIG_ $TMPH config.mak $CONFIG_LIST if test "$targetos" = "Darwin"; then echo "#define CONFIG_DARWIN 1" >> $TMPH - echo "CONFIG_DARWIN=yes" >> config.mak -fi - -if test "$_malloc_h" = "yes" ; then - echo "#define HAVE_MALLOC_H 1" >> $TMPH -else - echo "#undef HAVE_MALLOC_H" >> $TMPH -fi - -if test "$_memalign" = "yes" ; then - echo "#define HAVE_MEMALIGN 1" >> $TMPH -else - echo "#undef HAVE_MEMALIGN" >> $TMPH -fi - -if test "$memalignhack" = "yes" ; then - echo "#define MEMALIGN_HACK 1" >> $TMPH fi +echo "#define restrict $_restrict" >> $TMPH -if test "$netserver" = "yes" ; then - echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH - echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak +if test "$optimize" = "small"; then + echo "#define always_inline" >> $TMPH + echo "#define CONFIG_SMALL 1" >> $TMPH fi -if test "$need_inet_aton" = "yes" ; then - echo "NEED_INET_ATON=yes" >> config.mak -fi +echo "SRC_PATH=\"$source_path\"" >> config.mak +echo "SRC_PATH_BARE=$source_path" >> config.mak +echo "BUILD_ROOT=\"$PWD\"" >> config.mak -if test "$simpleidct" = "yes" ; then - echo "#define SIMPLE_IDCT 1" >> $TMPH +if test "$amr_if2" = "yes" ; then + echo "AMR_CFLAGS=-DIF2=1" >> config.mak fi -if test "$protocols" = "yes" ; then - echo "#define CONFIG_PROTOCOLS 1" >> $TMPH - echo "CONFIG_PROTOCOLS=yes" >> config.mak +# 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 -if test "$ffserver" = "yes" ; then - echo "#define CONFIG_FFSERVER 1" >> $TMPH - echo "CONFIG_FFSERVER=yes" >> config.mak -fi -if test "$ffplay" = "yes" ; then - echo "CONFIG_FFPLAY=yes" >> config.mak -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 -if test "$gpl" = "yes" ; then - echo "#define CONFIG_GPL 1" >> $TMPH - echo "CONFIG_GPL=yes" >> config.mak +# 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 -echo "#define restrict $_restrict" >> $TMPH - -if test "$optimize" = "small"; then - echo "#define always_inline" >> $TMPH - echo "#define CONFIG_SMALL 1" >> $TMPH -fi +rm -f $TMPO $TMPC $TMPE $TMPS $TMPH # build tree in object directory if source path is different from current one if test "$source_path_used" = "yes" ; then @@ -2067,6 +1978,7 @@ if test "$source_path_used" = "yes" ; then libavcodec \ libavcodec/alpha \ libavcodec/armv4l \ + libavcodec/bfin \ libavcodec/i386 \ libavcodec/sparc \ libavcodec/mlib \ @@ -2080,6 +1992,7 @@ if test "$source_path_used" = "yes" ; then " FILES="\ Makefile \ + common.mak \ libavformat/Makefile \ libavcodec/Makefile \ libpostproc/Makefile \ @@ -2097,74 +2010,6 @@ if test "$source_path_used" = "yes" ; then ln -sf "$source_path/$f" $f done fi -echo "SRC_PATH=$source_path" >> config.mak -echo "BUILD_ROOT=$PWD" >> config.mak - -if test "$amr" = "yes" ; then - echo "#define CONFIG_AMR 1" >> $TMPH - echo "CONFIG_AMR=yes" >> config.mak -fi - -if test "$amr_wb" = "yes" ; then - echo "#define CONFIG_AMR_WB 1" >> $TMPH - echo "CONFIG_AMR_WB=yes" >> config.mak - echo - echo "AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204" - echo "V5.1.0 from " - echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip" - echo "and extracted the source to libavcodec/amrwb_float" -fi - -if test "$amr_nb" = "yes" ; then - echo "#define CONFIG_AMR_NB 1" >> $TMPH - echo "CONFIG_AMR_NB=yes" >> config.mak - echo - echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104" - echo "REL-5 V5.1.0 from " - echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip" - echo "and extracted the source to libavcodec/amr_float" - echo "If you try this on alpha, you may need to change Word32 to int in amr/typedef.h" -fi - -if test "$amr_nb_fixed" = "yes" ; then - echo "#define CONFIG_AMR_NB_FIXED 1" >> $TMPH - echo "CONFIG_AMR_NB_FIXED=yes" >> config.mak - echo - echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 " - echo "REL-5 version 5.1.0 from " - echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip" - echo "and extracted src to libavcodec/amr" - echo "You must also add -DMMS_IO and remove -pedantic-errors to/from CFLAGS in libavcodec/amr/makefile." - echo "i.e. CFLAGS = -Wall -I. \$(CFLAGS_\$(MODE)) -D\$(VAD) -DMMS_IO" -fi - -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 - echo "CONFIG_`echo $codec | tr a-z A-Z`=yes" >> config.mak -done - -# Do not overwrite config.h if unchanged to avoid superfluous rebuilds. -diff $TMPH config.h >/dev/null 2>&1 -if test "$?" != "0" ; then - mv -f $TMPH config.h -else - echo "config.h is unchanged" -fi - -rm -f $TMPO $TMPC $TMPE $TMPS $TMPH - # build pkg-config files libav*.pc and libpostproc.pc # libavutil.pc @@ -2292,6 +2137,15 @@ Libs: \${libdir}/${LIBPREF}postproc${LIBSUF} Cflags: -I\${includedir} EOF +if test "$swscaler" != "no"; then + sws_pc_libs="-L\${libdir} -lswscale" + sws_pc_uninstalled_libs="\${libdir}/${LIBPREF}swscale${LIBSUF}" + sws_pc_requires="$pkg_requires libavutil = $lavu_version" +else + sws_pc_libs="" + sws_pc_uninstalled_libs="" + sws_pc_requires="$pkg_requires libavcodec = $lavc_version" +fi # libswscale.pc cat <libswscale.pc prefix=$PREFIX @@ -2302,9 +2156,9 @@ includedir=\${prefix}/include Name: libswscale Description: FFmpeg image rescaling library Version: $sws_version -Requires: $pkg_requires libavutil = $lavu_version +Requires: $sws_pc_requires Conflicts: -Libs: -L\${libdir} -lswscale +Libs: $sws_pc_libs Cflags: -I\${includedir} -I\${includedir}/swscale EOF @@ -2317,8 +2171,8 @@ includedir=\${pcfiledir}/libswscale Name: libswscale Description: FFmpeg image rescaling library Version: $sws_version -Requires: $pkg_requires libavutil = $lavu_version +Requires: $sws_pc_requires Conflicts: -Libs: \${libdir}/${LIBPREF}swscale${LIBSUF} +Libs: $sws_pc_uninstalled_libs Cflags: -I\${includedir} EOF