X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=a4607a45177cbff8c7d4dd6539d08c25f21916db;hb=6c81ca99067f303b3ce835385e14a91adbd62ac7;hp=44d7db05ebd6c2ff0838c22bf45dbc0612e2b0a3;hpb=6194731ae4f9ae5185b23283d190e920d9e1b324;p=ffmpeg diff --git a/configure b/configure index 44d7db05ebd..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 @@ -162,6 +184,11 @@ 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 @@ -179,7 +206,33 @@ disable(){ } 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(){ @@ -285,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(){ @@ -297,6 +354,9 @@ int main(){ $func(); } EOF + err=$? + test "$err" = 0 && enable $func || disable $func + return $err } check_lib(){ @@ -323,6 +383,79 @@ require(){ check_lib $header $func "$@" || die "ERROR: $name not found" } +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 TMPDIR1="${TMPDIR}" @@ -420,8 +553,8 @@ case "$arch" in ;; esac gprof="no" -v4l="yes" -v4l2="yes" +video4linux="yes" +video4linux2="yes" bktr="no" audio_oss="yes" audio_beos="no" @@ -445,7 +578,7 @@ a52bin="no" dts="no" pp="no" mingw32="no" -mingwce="no" +wince="no" os2="no" lstatic="yes" lshared="no" @@ -456,17 +589,14 @@ dostrip="yes" installstrip="-s" extralibs="-lm" 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)' beos_netserver="no" -need_inet_aton="no" protocols="yes" ffmpeg="yes" ffserver="yes" @@ -490,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)"' @@ -518,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 beos_netserver="yes" -need_inet_aton="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" @@ -554,8 +683,8 @@ make="gmake" add_extralibs "-lossaudio" ;; OpenBSD) -v4l="no" -v4l2="no" +video4linux="no" +video4linux2="no" bktr="yes" audio_oss="yes" dv1394="no" @@ -565,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" @@ -574,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" @@ -594,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)" @@ -617,9 +746,9 @@ mingw32="yes" ;; CYGWIN*) targetos=CYGWIN -shlibdir='${PREFIX}/bin' -v4l="no" -v4l2="no" +shlibdir="$bindir" +video4linux="no" +video4linux2="no" audio_oss="yes" dv1394="no" VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil' @@ -638,8 +767,8 @@ 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" ;; @@ -659,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" @@ -694,11 +823,11 @@ 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 @@ -709,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" ;; @@ -753,9 +882,9 @@ for opt do ;; --enable-gprof) gprof="yes" ;; - --disable-v4l) v4l="no" + --disable-v4l) video4linux="no" ;; - --disable-v4l2) v4l2="no" + --disable-v4l2) video4linux2="no" ;; --disable-bktr) bktr="no" ;; @@ -810,7 +939,7 @@ for opt do ;; --enable-mingw32) mingw32="yes" ;; - --enable-mingwce) mingwce="yes" + --enable-mingwce) wince="yes" ;; --enable-static) lstatic="yes" ;; @@ -846,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" ;; @@ -854,7 +983,7 @@ for opt do ;; --enable-gpl) gpl="yes" ;; - --enable-memalign-hack) memalignhack="yes" + --enable-memalign-hack) memalign_hack="yes" ;; --disable-strip) dostrip="no" ;; @@ -906,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 < -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_header byteswap.h && byteswap_h=yes || byteswap_h=no +check_header byteswap.h -check_func localtime_r && localtime_r=yes || localtime_r=no +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 @@ -1333,11 +1442,11 @@ enabled libgsm && require libgsm gsm.h gsm_create -lgsm 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 nut.h nut_demuxer_init -lnut +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 @@ -1388,7 +1497,7 @@ fi # test for lrintf in math.h -check_exec < int main( void ) { return (lrintf(3.999f) > 0)?0:1; } @@ -1403,25 +1512,19 @@ done # dlopen/dlfcn.h probing -check_header dlfcn.h && dlfcn=yes - -temp_extralibs -ldl -if check_func dlopen; then - dlopen=yes - ldl=-ldl -fi -restore_flags +check_header dlfcn.h 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 @@ -1438,6 +1541,10 @@ if enabled vhook; then check_ldflags -export-dynamic fi +if enabled audio_beos; then + add_extralibs "-lmedia -lbe" +fi + ########################################## # imlib check @@ -1526,7 +1633,7 @@ int main( void ) { EOF # check for video4linux2 --- V4L2_PIX_FMT_YUV420 -enabled v4l2 && check_cc < #include #include @@ -1575,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" @@ -1590,8 +1700,6 @@ 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 $arch = "x86_32" -o $arch = "x86_64"; then echo "MMX enabled $mmx" echo "CMOV enabled $cmov" @@ -1641,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 @@ -1660,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 @@ -1685,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 @@ -1710,74 +1813,35 @@ 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 "$arch" = "x86_32" -o "$arch" = "x86_64" ; then - echo "TARGET_ARCH_X86=yes" >> config.mak - echo "#define ARCH_X86 1" >> $TMPH -fi -if test "$arch" = "x86_32" ; then - echo "TARGET_ARCH_X86_32=yes" >> config.mak - echo "#define ARCH_X86_32 1" >> $TMPH -elif test "$arch" = "x86_64" ; then - echo "TARGET_ARCH_X86_64=yes" >> config.mak - echo "#define ARCH_X86_64 1" >> $TMPH -elif test "$arch" = "armv4l" ; then - echo "TARGET_ARCH_ARMV4L=yes" >> config.mak - echo "#define ARCH_ARMV4L 1" >> $TMPH -elif test "$arch" = "alpha" ; then - echo "TARGET_ARCH_ALPHA=yes" >> config.mak - echo "#define ARCH_ALPHA 1" >> $TMPH -elif test "$arch" = "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 "$arch" = "sparc" ; then - echo "TARGET_ARCH_SPARC=yes" >> config.mak - echo "#define ARCH_SPARC 1" >> $TMPH -elif test "$arch" = "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 "$arch" = "mips" ; then - echo "TARGET_ARCH_MIPS=yes" >> config.mak - echo "#define ARCH_MIPS 1" >> $TMPH -elif test "$arch" = "sh4" ; then - echo "TARGET_ARCH_SH4=yes" >> config.mak - echo "#define ARCH_SH4 1" >> $TMPH -elif test "$arch" = "parisc" ; then - echo "TARGET_ARCH_PARISC=yes" >> config.mak - echo "#define ARCH_PARISC 1" >> $TMPH -elif test "$arch" = "s390" ; then - echo "TARGET_ARCH_S390=yes" >> config.mak - echo "#define ARCH_S390 1" >> $TMPH -elif test "$arch" = "m68k" ; then - echo "TARGET_ARCH_M68K=yes" >> config.mak - echo "#define ARCH_M68K 1" >> $TMPH -elif test "$arch" = "ia64" ; then - echo "TARGET_ARCH_IA64=yes" >> config.mak - echo "#define ARCH_IA64 1" >> $TMPH -elif test "$arch" = "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 @@ -1804,60 +1868,18 @@ if test "$mmi" = "yes" ; then echo "#define HAVE_MMI 1" >> $TMPH fi -if test "$dcbzl" = "yes" ; then - echo "#define HAVE_DCBZL 1" >> $TMPH -else - echo "#undef HAVE_DCBZL" >> $TMPH -fi - if test "$altivec" = "yes" ; then echo "TARGET_ALTIVEC=yes" >> config.mak echo "#define HAVE_ALTIVEC 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 "HAVE_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 "CONFIG_VHOOK=yes" >> config.mak - echo "#define CONFIG_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'` @@ -1889,276 +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_A52 1" >> $TMPH - echo "CONFIG_A52=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 - -if test "$bktr" = "yes" ; then - echo "#define CONFIG_BKTR 1" >> $TMPH - echo "CONFIG_BKTR=yes" >> config.mak -fi - -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 HAVE_DLOPEN 1" >> $TMPH -fi - -if test "$dlfcn" = "yes" ; then - echo "#define 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 "$libnut" = "yes" ; then - echo "#define CONFIG_LIBNUT 1" >> $TMPH - echo "CONFIG_LIBNUT=yes" >> config.mak -fi - -if test "$libogg" = "yes" ; then - echo "#define CONFIG_LIBOGG 1" >> $TMPH - echo "CONFIG_LIBOGG=yes" >> config.mak -fi - -if test "$libvorbis" = "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 +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 "$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 +enabled_any pthreads beosthreads os2threads w32threads && enable threads -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 - -if test "$byteswap_h" = "yes"; then - echo "#define HAVE_BYTESWAP_H 1" >> $TMPH -fi +echo "#define restrict $_restrict" >> $TMPH -if test "$beos_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 "$protocols" = "yes" ; then - echo "#define CONFIG_PROTOCOLS 1" >> $TMPH - echo "CONFIG_PROTOCOLS=yes" >> config.mak +if test "$amr_if2" = "yes" ; then + echo "AMR_CFLAGS=-DIF2=1" >> config.mak fi -if test "$ffmpeg" = "yes" ; then - echo "#define CONFIG_FFMPEG 1" >> $TMPH - echo "CONFIG_FFMPEG=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 @@ -2200,84 +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 "SRC_PATH_BARE=$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 - - -# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z" -for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do - ucname="`echo $codec | tr '[a-z]' '[A-Z]'`" - 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. -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