X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=3b8a1751300cd7f4919d74531ed5139969fbeeb8;hb=deb29777361c439ce419849dc6faa1d0d597f1e2;hp=676ef58ff0f7909f14689ff4def4791be55dec42;hpb=c839db53f7f4bf8cc6b78153c524242906784c55;p=ffmpeg diff --git a/configure b/configure index 676ef58ff0f..3b8a1751300 100755 --- a/configure +++ b/configure @@ -87,12 +87,15 @@ show_help(){ echo " --enable-faadbin build FAAD support with runtime linking [default=no]" echo " --enable-libgsm enable GSM support via libgsm [default=no]" 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-libtheora enable Theora support via libtheora [default=no]" - echo " --enable-vorbis enable Vorbis support via libvorbis [default=no]" + echo " --enable-libnut enable NUT (de)muxing via libnut," + echo " native demuxer exists [default=no]" + echo " --enable-libogg enable Ogg muxing via libogg [default=no]" + echo " --enable-libtheora enable Theora encoding via libtheora [default=no]" + echo " --enable-vorbis enable Vorbis en/decoding via libvorbis," + echo " native implementations exist [default=no]" echo " --enable-x264 enable H.264 encoding via x264 [default=no]" - echo " --enable-xvid enable Xvid encoding via xvidcore [default=no]" + echo " --enable-xvid enable Xvid encoding via xvidcore," + echo " native MPEG-4/Xvid encoder exists [default=no]" echo " --enable-amr_nb enable amr_nb float audio codec" echo " --enable-amr_nb-fixed use fixed point for amr-nb codec" echo " --enable-amr_wb enable amr_wb float audio codec" @@ -225,18 +228,34 @@ enabled(){ eval test "x\$$1" = "xyes" } +disabled(){ + eval test "x\$$1" = "xno" +} + enabled_all(){ for opt; do enabled $opt || return 1 done } +disabled_all(){ + for opt; do + disabled $opt || return 1 + done +} + enabled_any(){ for opt; do enabled $opt && return 0 done } +disabled_any(){ + for opt; do + disabled $opt && return 0 + done +} + check_deps(){ for cfg; do eval dep_all="\$${cfg}_deps" @@ -465,10 +484,13 @@ CONFIG_LIST=' ' HAVE_LIST=' + altivec altivec_h + armv5te armv6 beosthreads byteswap_h + cmov dcbzl dev_bktr_ioctl_bt848_h dev_bktr_ioctl_meteor_h @@ -477,10 +499,12 @@ HAVE_LIST=' dev_video_bktr_ioctl_bt848_h dlfcn_h dlopen + fast_cmov freetype2 gprof imlib2 inet_aton + iwmmxt localtime_r lrintf machine_ioctl_bt848_h @@ -488,15 +512,27 @@ HAVE_LIST=' malloc_h memalign mlib + mmi + mmx os2 os2threads pthreads sdl sdl_video_size + soundcard_h + sys_soundcard_h threads w32threads ' +TARGET_LIST=' + altivec + armv5te + iwmmxt + mmi + mmx +' + flashsv_decoder_deps="zlib" flashsv_encoder_deps="zlib" mpeg_xvmc_decoder_deps="xvmc" @@ -528,7 +564,8 @@ audio_muxer_deps_any="audio_oss audio_beos" dc1394_demuxer_deps="dc1394" dv1394_demuxer_deps="dv1394" gxf_muxer_deps="gpl" -nut_muxer_deps="libnut" +libnut_demuxer_deps="libnut" +libnut_muxer_deps="libnut" ogg_muxer_deps="libogg" redir_demuxer_deps="network" rtp_muxer_deps="network" @@ -554,14 +591,19 @@ TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" # default parameters + logging="yes" logfile="config.err" + +# installation paths PREFIX="/usr/local" libdir='${PREFIX}/lib' shlibdir="$libdir" incdir='${PREFIX}/include/ffmpeg' mandir='${PREFIX}/man' bindir='${PREFIX}/bin' + +# toolchain cross_prefix="" cross_compile="no" cc="gcc" @@ -569,18 +611,23 @@ ar="ar" ranlib="ranlib" make="make" strip="strip" +asmalign_pot="unknown" + +# machine arch=`uname -m` cpu="generic" powerpc_perf="no" mmx="default" cmov="no" -cmov_is_fast="no" +fast_cmov="no" armv5te="default" armv6="default" iwmmxt="default" altivec="default" dcbzl="no" mmi="default" +bigendian="no" + case "$arch" in i386|i486|i586|i686|i86pc|BePC) arch="x86_32" @@ -635,22 +682,35 @@ case "$arch" in arch="unknown" ;; esac -gprof="no" -video4linux="yes" -video4linux2="yes" -bktr="no" -audio_oss="yes" + +# OS +beos_netserver="no" +mingw32="no" +os2="no" +wince="no" + +# non-library system interfaces audio_beos="no" -x11grab="no" +audio_oss="yes" +bktr="no" dv1394="yes" +video4linux2="yes" +video4linux="yes" + +# libraries +amr_if2="no" +amr_nb="no" +amr_nb_fixed="no" +amr_wb="no" +avisynth="no" dc1394="no" -network="yes" -ipv6="yes" -zlib="yes" +dlfcn_h="no" +dlopen="no" liba52="no" liba52bin="no" libdts="no" libfaac="no" +libfaad2="no" libfaad="no" libfaadbin="no" libgsm="no" @@ -659,32 +719,44 @@ libnut="no" libogg="no" libtheora="no" libvorbis="no" -xvid="no" +mlib="no" +x11grab="no" x264="no" -pp="no" -mingw32="no" -wince="no" -os2="no" -lstatic="yes" -lshared="no" -optimize="yes" +xvid="no" +zlib="yes" + +# configurable options debug="yes" -extrawarnings="no" dostrip="yes" -extralibs="-lm" -bigendian="no" -vhook="default" -avisynth="no" -dlfcn_h="no" -dlopen="no" +extrawarnings="no" +ffmpeg="yes" +ffplay="yes" +ffserver="yes" +gpl="no" +gprof="no" +ipv6="yes" +lshared="no" +lstatic="yes" +memalign_hack="no" mpegaudio_hp="yes" +network="yes" +optimize="yes" +pp="no" +protocols="yes" +swscaler="no" +vhook="default" + +# threading +beosthreads="no" +os2threads="no" +pthreads="no" +w32threads="no" +thread_type="no" + +# build settings +extralibs="-lm" SHFLAGS='-shared -Wl,-soname,$@' 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' @@ -700,196 +772,151 @@ SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' EXESUF="" BUILDSUF="" -amr_nb="no" -amr_wb="no" -amr_nb_fixed="no" -amr_if2="no" -mlib="no" -beosthreads="no" -os2threads="no" -pthreads="no" -w32threads="no" -thread_type="no" -swscaler="no" -gpl="no" -memalign_hack="no" -asmalign_pot="unknown" LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"' # OS specific targetos=`uname -s` case $targetos in -BeOS) -PREFIX="/boot/home/config" -# helps building libavcodec -add_cflags "-DPIC -fomit-frame-pointer" -# 3 gcc releases known for BeOS, each with ugly bugs -gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`" -case "$gcc_version" in -2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc" -mmx="no" -;; -*20010315*) echo "BeBits gcc" -add_cflags "-fno-expensive-optimizations" -;; -esac -SHFLAGS=-nostart -# disable Linux things -audio_oss="no" -video4linux="no" -video4linux2="no" -dv1394="no" -# enable BeOS things -audio_beos="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" -extralibs="-lnet" -fi ;; -SunOS) -video4linux="no" -video4linux2="no" -audio_oss="no" -dv1394="no" -make="gmake" -FFLDFLAGS="" -FFSERVERLDFLAGS="" -SHFLAGS="-shared -Wl,-h,\$@" -add_extralibs "-lsocket -lnsl" -;; -NetBSD) -video4linux="no" -video4linux2="no" -bktr="yes" -audio_oss="yes" -dv1394="no" -make="gmake" -add_extralibs "-lossaudio" -;; -OpenBSD) -video4linux="no" -video4linux2="no" -bktr="yes" -audio_oss="yes" -dv1394="no" -need_memalign="no" -make="gmake" -LIBOBJFLAGS="\$(PIC)" -LDCONFIG="ldconfig -m \$(shlibdir)" -SHFLAGS='-shared' -SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)' -SLIBNAME_WITH_VERSION='$(SLIBNAME)' -SLIBNAME_WITH_MAJOR='$(SLIBNAME)' -add_extralibs "-lossaudio" -;; -FreeBSD) -video4linux="no" -video4linux2="no" -bktr="yes" -audio_oss="yes" -dv1394="no" -make="gmake" -need_memalign="no" -add_cflags "-pthread" -;; -GNU/kFreeBSD) -video4linux="no" -video4linux2="no" -bktr="yes" -audio_oss="yes" -dv1394="no" -add_cflags "-pthread" -;; -BSD/OS) -video4linux="no" -video4linux2="no" -bktr="yes" -audio_oss="yes" -dv1394="no" -extralibs="-lpoll -lgnugetopt -lm" -make="gmake" -strip="strip -d" -;; -Darwin) -cc="cc" -video4linux="no" -video4linux2="no" -audio_oss="no" -dv1394="no" -need_memalign="no" -SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress" -VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@' -extralibs="" -strip="strip -x" -FFLDFLAGS="-Wl,-dynamic,-search_paths_first" -SLIBSUF=".dylib" -SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)' -SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)' -FFSERVERLDFLAGS=-Wl,-bind_at_load -;; -MINGW32*) -# Note: the rest of the mingw32 config is done afterwards as mingw32 -# can be forced on the command line for Linux cross compilation. -mingw32="yes" -;; -CYGWIN*) -targetos=CYGWIN -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' -VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)' -extralibs="" -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) -LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS" -;; -IRIX*) -targetos=IRIX -ranlib="echo ignoring ranlib" -video4linux="no" -video4linux2="no" -audio_oss="no" -make="gmake" -;; -OS/2) -TMPE=$TMPE".exe" -ar="emxomfar -p128" -ranlib="echo ignoring ranlib" -strip="echo ignoring strip" -add_cflags "-Zomf" -FFLDFLAGS="-Zomf -Zstack 16384 -s" -SHFLAGS="-Zdll -Zomf" -FFSERVERLDFLAGS="" -LIBPREF="" -LIBSUF=".lib" -SLIBPREF="" -SLIBSUF=".dll" -EXESUF=".exe" -extralibs="" -pkg_requires="" -video4linux="no" -video4linux2="no" -audio_oss="no" -dv1394="no" -ffserver="no" -vhook="no" -os2="yes" -;; -*) -targetos="${targetos}-UNKNOWN" -;; + BeOS|Haiku|Zeta) + PREFIX="$HOME/config" + # helps building libavcodec + add_cflags "-DPIC -fomit-frame-pointer" + # 3 gcc releases known for BeOS, each with ugly bugs + gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`" + case "$gcc_version" in + 2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc" + mmx="no" + ;; + *20010315*) echo "BeBits gcc" + add_cflags "-fno-expensive-optimizations" + ;; + esac + LDCONFIG="echo ignoring ldconfig" + SHFLAGS=-nostart + # disable Linux things + dv1394="no" + # enable BeOS things + audio_beos="yes" + # no need for libm, but the inet stuff + # Check for BONE + # XXX: actually should check for NOT net_server + if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then + extralibs="-lbind -lsocket" + else + beos_netserver="yes" + extralibs="-lnet" + fi ;; + SunOS) + dv1394="no" + make="gmake" + FFLDFLAGS="" + FFSERVERLDFLAGS="" + SHFLAGS="-shared -Wl,-h,\$@" + add_extralibs "-lsocket -lnsl" + ;; + NetBSD) + bktr="yes" + dv1394="no" + make="gmake" + add_extralibs "-lossaudio" + ;; + OpenBSD) + bktr="yes" + dv1394="no" + need_memalign="no" + make="gmake" + LIBOBJFLAGS="\$(PIC)" + LDCONFIG="ldconfig -m \$(shlibdir)" + SHFLAGS='-shared' + SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)' + SLIBNAME_WITH_VERSION='$(SLIBNAME)' + SLIBNAME_WITH_MAJOR='$(SLIBNAME)' + add_extralibs "-lossaudio" + ;; + FreeBSD) + bktr="yes" + dv1394="no" + make="gmake" + need_memalign="no" + add_cflags "-pthread" + ;; + GNU/kFreeBSD) + bktr="yes" + dv1394="no" + add_cflags "-pthread" + ;; + BSD/OS) + bktr="yes" + dv1394="no" + extralibs="-lpoll -lgnugetopt -lm" + make="gmake" + strip="strip -d" + ;; + Darwin) + cc="cc" + dv1394="no" + need_memalign="no" + SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress" + VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@' + extralibs="" + strip="strip -x" + FFLDFLAGS="-Wl,-dynamic,-search_paths_first" + SLIBSUF=".dylib" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)' + FFSERVERLDFLAGS=-Wl,-bind_at_load + ;; + MINGW32*) + # Note: the rest of the mingw32 config is done afterwards as mingw32 + # can be forced on the command line for Linux cross compilation. + mingw32="yes" + ;; + CYGWIN*) + targetos=CYGWIN + shlibdir="$bindir" + dv1394="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" + 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) + LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS" + ;; + IRIX*) + targetos=IRIX + ranlib="echo ignoring ranlib" + make="gmake" + ;; + OS/2) + TMPE=$TMPE".exe" + ar="emxomfar -p128" + ranlib="echo ignoring ranlib" + strip="echo ignoring strip" + add_cflags "-Zomf" + FFLDFLAGS="-Zomf -Zstack 16384 -s" + SHFLAGS="-Zdll -Zomf" + FFSERVERLDFLAGS="" + LIBPREF="" + LIBSUF=".lib" + SLIBPREF="" + SLIBSUF=".dll" + EXESUF=".exe" + extralibs="" + pkg_requires="" + dv1394="no" + ffserver="no" + vhook="no" + os2="yes" + ;; + *) + targetos="${targetos}-UNKNOWN" + ;; esac # find source path @@ -908,10 +935,7 @@ if test x"$1" = x"-h" -o x"$1" = x"--help" ; then show_help fi -FFMPEG_CONFIGURATION=" " -for opt do - FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt " -done +FFMPEG_CONFIGURATION="$@" ENCODER_LIST=`sed -n 's/^[^#]*ENC.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"` DECODER_LIST=`sed -n 's/^[^#]*DEC.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"` @@ -1130,7 +1154,7 @@ for opt do esac done -if test "$logging" != no; then +if ! disabled logging ; then enabled logging || logfile="$logging" echo "# $0 $@" >$logfile set >>$logfile @@ -1148,9 +1172,6 @@ you do not need to pass additional options. EOF exit 1 fi - video4linux="no" - video4linux2="no" - audio_oss="no" dv1394="no" dc1394="no" ffserver="no" @@ -1178,7 +1199,7 @@ ranlib="${cross_prefix}${ranlib}" strip="${cross_prefix}${strip}" # we need to build at least one lib type -if test "$lstatic" = "no" && test "$lshared" = "no" ; then +if disabled_all lstatic lshared; then cat < - #ifndef FAAD2_VERSION - ok faad1 - #endif - int main( void ) { return 0; } +if enabled_any libfaad libfaadbin ; then + if check_header faad.h; then + check_cc << EOF +#include +#ifndef FAAD2_VERSION +ok faad1 +#endif +int main( void ) { return 0; } EOF - if test $? = 0 ; then - die "FAAD2 is under GPL and --enable-gpl is not specified." - fi - else - libfaad="no" - libfaadbin="no" - echo "FAAD test failed." - fi + test $? = 0 && enable libfaad2 + else + die "FAAD test failed." fi +fi - if enabled x11grab; then - die "The X11 grabber is under GPL and --enable-gpl is not specified." - fi - if enabled swscaler; then - die "The software scaler is under GPL and --enable-gpl is not specified." - fi +if disabled gpl ; then + die_gpl_disabled(){ + name=$1 + shift + enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified." + } + die_gpl_disabled "The Postprocessing code" pp + die_gpl_disabled "liba52" liba52 liba52bin + die_gpl_disabled "libxvidcore" xvid + die_gpl_disabled "x264" x264 + die_gpl_disabled "libdts" libdts + die_gpl_disabled "FAAD2" libfaad2 + die_gpl_disabled "The X11 grabber" x11grab + die_gpl_disabled "The software scaler" swscaler fi # compute MMX state @@ -1269,13 +1270,13 @@ if test $targetos = Darwin; then ;; *[34].*) add_cflags "-no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare" - if test "$lshared" = no; then + if disabled lshared; then needmdynamicnopic="yes" fi ;; *) add_cflags "-no-cpp-precomp -pipe" - if test "$lshared" = no; then + if disabled lshared; then needmdynamicnopic="yes" fi ;; @@ -1283,7 +1284,7 @@ if test $targetos = Darwin; then fi fi -if test $optimize != "no"; then +if ! disabled optimize ; then add_cflags "-fomit-frame-pointer" fi @@ -1299,48 +1300,40 @@ fi # Add processor-specific flags POWERPCMODE="32bits" if test $cpu != "generic"; then + warn_altivec_enabled(){ + enabled altivec && echo "WARNING: Tuning for $1 but AltiVec enabled."; + } + warn_altivec_disabled(){ + disabled altivec && echo "WARNING: Tuning for $1 but AltiVec disabled."; + } case $cpu in 601|ppc601|PowerPC601) add_cflags "-mcpu=601" - if enabled altivec; then - echo "WARNING: Tuning for PPC601 but AltiVec enabled!"; - fi + warn_altivec_enabled PPC601 ;; 603*|ppc603*|PowerPC603*) add_cflags "-mcpu=603" - if enabled altivec; then - echo "WARNING: Tuning for PPC603 but AltiVec enabled!"; - fi + warn_altivec_enabled PPC603 ;; 604*|ppc604*|PowerPC604*) add_cflags "-mcpu=604" - if enabled altivec; then - echo "WARNING: Tuning for PPC604 but AltiVec enabled!"; - fi + warn_altivec_enabled PPC604 ;; G3|g3|75*|ppc75*|PowerPC75*) add_cflags "-mcpu=750 -mpowerpc-gfxopt" - if enabled altivec; then - echo "WARNING: Tuning for PPC75x but AltiVec enabled!"; - fi + warn_altivec_enabled PPC75x ;; G4|g4|745*|ppc745*|PowerPC745*) add_cflags "-mcpu=7450 -mpowerpc-gfxopt" - if test $altivec = "no"; then - echo "WARNING: Tuning for PPC745x but AltiVec disabled!"; - fi + warn_altivec_disabled PPC745x ;; 74*|ppc74*|PowerPC74*) add_cflags "-mcpu=7400 -mpowerpc-gfxopt" - if test $altivec = "no"; then - echo "WARNING: Tuning for PPC74xx but AltiVec disabled!"; - fi + warn_altivec_disabled PPC74xx ;; G5|g5|970|ppc970|PowerPC970|power4*|Power4*) add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64" - if test $altivec = "no"; then - echo "WARNING: Tuning for PPC970 but AltiVec disabled!"; - fi + warn_altivec_disabled PPC970 POWERPCMODE="64bits" ;; # targets that do NOT support conditional mov (cmov) @@ -1352,13 +1345,13 @@ if test $cpu != "generic"; then i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2) add_cflags "-march=$cpu" cmov="yes" - cmov_is_fast="yes" + fast_cmov="yes" ;; # targets that do support conditional mov but on which it's slow pentium4|prescott|nocona) add_cflags "-march=$cpu" cmov="yes" - cmov_is_fast="no" + fast_cmov="no" ;; sparc64) add_cflags "-mcpu=v9" @@ -1392,7 +1385,7 @@ int main(){ EOF if test "$?" != 0; then echo "$cc is unable to create an executable file." - if test -z "$cross_prefix" -a "$cross_compile" = no; then + if test -z "$cross_prefix" && disabled cross_compile ; then echo "If $cc is a cross-compiler, use the --cross-compile option." echo "Only do this if you know what cross compiling means." fi @@ -1491,7 +1484,7 @@ EOF # --- # big/little-endian test -if test "$cross_compile" = "no"; then +if disabled cross_compile; then check_ld < int main(int argc, char ** argv){ @@ -1512,8 +1505,7 @@ fi check_header malloc.h check_func memalign -if test "$memalign" = "no" -a "$need_memalign" = "yes" -a \ - "$memalign_hack" != "yes"; then +if disabled_all memalign memalign_hack && enabled need_memalign ; then die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack." fi @@ -1541,7 +1533,7 @@ fi for thread in pthreads beosthreads os2threads w32threads; do if enabled $thread; then - if test $thread_type != "no"; then + if ! disabled thread_type ; then die "ERROR: Only one thread type must be selected." else thread_type="$thread" @@ -1550,17 +1542,17 @@ for thread in pthreads beosthreads os2threads w32threads; do done # these are off by default, so fail if requested and not available -enabled libdts && require libdts dts.h dts_init -ldts -lm -enabled libgsm && require libgsm gsm.h gsm_create -lgsm +enabled libdts && require libdts dts.h dts_init -ldts -lm +enabled libgsm && require libgsm gsm.h gsm_create -lgsm enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm -enabled libtheora && require libtheora theora/theora.h theora_info_init -ltheora -logg -enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg -enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg -enabled libnut && require libnut libnut.h nut_demuxer_init -lnut -enabled xvid && require XviD xvid.h xvid_global -lxvidcore -enabled x264 && require x264 x264.h x264_encoder_open -lx264 -enabled dc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 -enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib +enabled libtheora && require libtheora theora/theora.h theora_info_init -ltheora -logg +enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg +enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg +enabled libnut && require libnut libnut.h nut_demuxer_init -lnut +enabled xvid && require XviD xvid.h xvid_global -lxvidcore +enabled x264 && require x264 x264.h x264_encoder_open -lx264 +enabled dc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 +enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib # Ugh, libfaac uses stdcall calling convention on win32 so we can't use # the generic test functions @@ -1642,7 +1634,7 @@ if enabled_any vhook liba52bin libfaadbin; then add_extralibs $ldl fi -if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then +if test "$targetos" = "CYGWIN" && enabled lstatic ; then vhook="no" echo echo "At the moment vhooks don't work on Cygwin static builds." @@ -1662,13 +1654,16 @@ fi ########################################## # imlib check -temp_extralibs -lImlib2 -check_ld < +imlib2=no +if (imlib2-config --version) >/dev/null 2>&1 ; then + temp_cflags `imlib2-config --cflags` + temp_extralibs `imlib2-config --libs` + check_ld < int main( void ) { return (int) imlib_load_font("foo"); } EOF -restore_flags + restore_flags +fi ########################################## # FreeType check @@ -1746,14 +1741,8 @@ int main( void ) { } EOF -# check for video4linux2 --- V4L2_PIX_FMT_YUV420 -enabled video4linux2 && check_cc < -#include -#include -int dummy = V4L2_PIX_FMT_YUV420; -struct v4l2_buffer dummy1; -EOF +enabled video4linux && check_header linux/videodev.h || disable video4linux +enabled video4linux2 && check_header linux/videodev2.h || disable video4linux2 # check for ioctl_meteor.h, ioctl_bt848.h and alternatives if enabled bktr; then @@ -1769,6 +1758,11 @@ if enabled bktr; then check_header dev/ic/bt8xx.h fi +enabled audio_oss && + check_header sys/soundcard.h || + check_header soundcard.h || + disable audio_oss + # Deal with the x11 frame grabber enabled x11grab && enabled gpl && @@ -1812,7 +1806,7 @@ if enabled lshared; then # LIBOBJFLAGS may have already been set in the OS configuration if test -z "$LIBOBJFLAGS" ; then case "$arch" in - x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;; + x86_64|ia64|alpha|sparc*|power*) LIBOBJFLAGS="\$(PIC)" ;; esac fi fi @@ -1844,7 +1838,7 @@ echo "big-endian $bigendian" if test $arch = "x86_32" -o $arch = "x86_64"; then echo "MMX enabled $mmx" echo "CMOV enabled $cmov" - echo "CMOV is fast $cmov_is_fast" + echo "CMOV is fast $fast_cmov" fi if test $arch = "armv4l"; then echo "ARMv5TE enabled $armv5te" @@ -1901,7 +1895,7 @@ echo "AMR-NB float support $amr_nb" echo "AMR-NB fixed support $amr_nb_fixed" echo "AMR-WB float support $amr_wb" echo "AMR-WB IF2 support $amr_if2" -if test "$gpl" = "no" ; then +if disabled gpl; then echo "License: LGPL" else echo "License: GPL" @@ -1911,7 +1905,7 @@ echo "Creating config.mak and config.h..." echo "# Automatically generated by configure - do not modify!" > config.mak echo "/* Automatically generated by configure - do not modify! */" > $TMPH -echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH +echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH echo "PREFIX=$PREFIX" >> config.mak echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak @@ -1982,35 +1976,8 @@ if enabled bigendian; then echo "#define WORDS_BIGENDIAN 1" >> $TMPH fi if enabled mmx; then - echo "TARGET_MMX=yes" >> config.mak - echo "#define HAVE_MMX 1" >> $TMPH echo "#define __CPU__ 586" >> $TMPH fi -if enabled cmov; then - echo "TARGET_CMOV=yes" >> config.mak - echo "#define HAVE_CMOV 1" >> $TMPH -fi -if enabled cmov_is_fast; then - echo "TARGET_CMOV_IS_FAST=yes" >> config.mak - echo "#define CMOV_IS_FAST 1" >> $TMPH -fi -if enabled armv5te; then - echo "TARGET_ARMV5TE=yes" >> config.mak - echo "#define HAVE_ARMV5TE 1" >> $TMPH -fi -if enabled iwmmxt; then - echo "TARGET_IWMMXT=yes" >> config.mak - echo "#define HAVE_IWMMXT 1" >> $TMPH -fi -if enabled mmi; then - echo "TARGET_MMI=yes" >> config.mak - echo "#define HAVE_MMI 1" >> $TMPH -fi - -if enabled altivec; then - echo "TARGET_ALTIVEC=yes" >> config.mak - echo "#define HAVE_ALTIVEC 1" >> $TMPH -fi if enabled sdl; then echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak @@ -2062,6 +2029,7 @@ check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \ print_config HAVE_ $TMPH config.mak $HAVE_LIST print_config CONFIG_ $TMPH config.mak $CONFIG_LIST +print_config TARGET_ $TMPH config.mak $TARGET_LIST if test "$targetos" = "Darwin"; then echo "#define CONFIG_DARWIN 1" >> $TMPH