X-Git-Url: http://rtime.felk.cvut.cz/gitweb/frescor/ffmpeg.git/blobdiff_plain/b19f84041d45d4f722a1acee385deda0ad11288d..HEAD:/configure diff --git a/configure b/configure index b52485762..ba18d8fa1 100755 --- a/configure +++ b/configure @@ -64,33 +64,89 @@ show_help(){ echo " --disable-logging do not log configure debug information" echo " --prefix=PREFIX install in PREFIX [$prefix]" echo " --bindir=DIR install binaries in DIR [PREFIX/bin]" + echo " --datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]" echo " --libdir=DIR install libs in DIR [PREFIX/lib]" echo " --shlibdir=DIR install shared libs in DIR [PREFIX/lib]" echo " --incdir=DIR install includes in DIR [PREFIX/include]" echo " --mandir=DIR install man page in DIR [PREFIX/share/man]" - echo " --enable-static build static libraries [yes]" + echo + echo "Configuration options:" echo " --disable-static do not build static libraries [no]" echo " --enable-shared build shared libraries [no]" - echo " --disable-shared do not build shared libraries [yes]" echo " --enable-gpl allow use of GPL code, the resulting libs" echo " and binaries will be under GPL [no]" echo " --enable-nonfree allow use of nonfree code, the resulting libs" echo " and binaries will be unredistributable [no]" + echo " --disable-ffmpeg disable ffmpeg build" + echo " --disable-ffplay disable ffplay build" + echo " --disable-ffserver disable ffserver build" echo " --enable-postproc enable GPLed postprocessing support [no]" - echo " --enable-swscale enable GPLed software scaler support [no]" - echo " --enable-avfilter video filter support (replaces vhook) [no]" + echo " --enable-avfilter video filter support [no]" echo " --enable-avfilter-lavf video filters dependent on avformat [no]" - echo " --disable-vhook disable video hooking support" echo " --enable-beosthreads use BeOS threads [no]" echo " --enable-os2threads use OS/2 threads [no]" echo " --enable-pthreads use pthreads [no]" - echo " --enable-vdpau enable VDPAU support [no]" echo " --enable-w32threads use Win32 threads [no]" echo " --enable-x11grab enable X11 grabbing [no]" - echo " --enable-xvmc enable XvMC support [no]" + echo " --disable-network disable network support [no]" + echo " --disable-ipv6 disable IPv6 support [no]" + echo " --disable-mpegaudio-hp faster (but less accurate) MPEG audio decoding [no]" + echo " --enable-gray enable full grayscale support (slower color)" + echo " --disable-swscale-alpha disable alpha channel support in swscale" + echo " --disable-fastdiv disable table-based division" + echo " --enable-small optimize for size instead of speed" + echo " --disable-aandct disable AAN DCT code" + echo " --disable-fft disable FFT code" + echo " --disable-golomb disable Golomb code" + echo " --disable-mdct disable MDCT code" + echo " --disable-rdft disable RDFT code" + echo " --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)" + echo " --enable-hardcoded-tables use hardcoded tables instead of runtime generation" + echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers" + echo " --enable-beos-netserver enable BeOS netserver" + echo " --disable-encoder=NAME disable encoder NAME" + echo " --enable-encoder=NAME enable encoder NAME" + echo " --disable-encoders disable all encoders" + echo " --disable-decoder=NAME disable decoder NAME" + echo " --enable-decoder=NAME enable decoder NAME" + echo " --disable-decoders disable all decoders" + echo " --disable-hwaccel=NAME disable hwaccel NAME" + echo " --enable-hwaccel=NAME enable hwaccel NAME" + echo " --disable-hwaccels disable all hwaccels" + echo " --disable-muxer=NAME disable muxer NAME" + echo " --enable-muxer=NAME enable muxer NAME" + echo " --disable-muxers disable all muxers" + echo " --disable-demuxer=NAME disable demuxer NAME" + echo " --enable-demuxer=NAME enable demuxer NAME" + echo " --disable-demuxers disable all demuxers" + echo " --enable-parser=NAME enable parser NAME" + echo " --disable-parser=NAME disable parser NAME" + echo " --disable-parsers disable all parsers" + echo " --enable-bsf=NAME enable bitstream filter NAME" + echo " --disable-bsf=NAME disable bitstream filter NAME" + echo " --disable-bsfs disable all bitstream filters" + echo " --enable-protocol=NAME enable protocol NAME" + echo " --disable-protocol=NAME disable protocol NAME" + echo " --disable-protocols disable all protocols" + echo " --disable-indevs disable input devices" + echo " --disable-outdevs disable output devices" + echo " --disable-devices disable all devices" + echo " --enable-filter=NAME enable filter NAME" + echo " --disable-filter=NAME disable filter NAME" + echo " --disable-filters disable all filters" + echo " --list-decoders show all available decoders" + echo " --list-encoders show all available encoders" + echo " --list-hwaccels show all available hardware accelerators" + echo " --list-muxers show all available muxers" + echo " --list-demuxers show all available demuxers" + echo " --list-parsers show all available parsers" + echo " --list-protocols show all available protocols" + echo " --list-bsfs show all available bitstream filters" + echo " --list-indevs show all available input devices" + echo " --list-outdevs show all available output devices" + echo " --list-filters show all available filters" echo echo "External library support:" - echo " --enable-mlib enable Sun medialib [no]" echo " --enable-avisynth enable reading of AVISynth script files [no]" echo " --enable-bzlib enable bzlib [autodetect]" echo " --enable-libamr-nb enable libamr-nb floating point audio codec [no]" @@ -105,6 +161,7 @@ show_help(){ echo " --enable-libmp3lame enable MP3 encoding via libmp3lame [no]" echo " --enable-libnut enable NUT (de)muxing via libnut," echo " native (de)muxer exists [no]" + echo " --enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no]" echo " --enable-libschroedinger enable Dirac support via libschroedinger [no]" echo " --enable-libspeex enable Speex decoding via libspeex [no]" echo " --enable-libtheora enable Theora encoding via libtheora [no]" @@ -113,17 +170,21 @@ show_help(){ echo " --enable-libx264 enable H.264 encoding via x264 [no]" echo " --enable-libxvid enable Xvid encoding via xvidcore," echo " native MPEG-4/Xvid encoder exists [no]" + echo " --enable-mlib enable Sun medialib [no]" echo " --enable-zlib enable zlib [autodetect]" echo "" echo "Advanced options (experts only):" echo " --source-path=PATH path to source code [$source_path]" echo " --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]" echo " --enable-cross-compile assume a cross-compiler is used" + echo " --sysroot=PATH root of cross-build tree" + echo " --sysinclude=PATH location of cross-build system headers" echo " --target-os=OS compiler targets OS [$target_os]" echo " --target-exec=CMD command to run executables on target" echo " --target-path=DIR path to view of build directory on target" echo " --nm=NM use nm tool" - echo " --cc=CC use C compiler CC [$cc]" + echo " --as=AS use assembler AS [$as_default]" + echo " --cc=CC use C compiler CC [$cc_default]" echo " --host-cc=HOSTCC use host C compiler HOSTCC" echo " --host-cflags=HCFLAGS use HCFLAGS when compiling for host" echo " --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host" @@ -139,6 +200,8 @@ show_help(){ echo " --enable-powerpc-perf enable performance report on PPC" echo " (requires enabling PMC)" echo " --disable-altivec disable AltiVec optimizations" + echo " --disable-amd3dnow disable 3DNow! optimizations" + echo " --disable-amd3dnowext disable 3DNow! extended optimizations" echo " --disable-mmx disable MMX optimizations" echo " --disable-mmx2 disable MMX2 optimizations" echo " --disable-sse disable SSE optimizations" @@ -151,60 +214,7 @@ show_help(){ echo " --disable-mmi disable MMI optimizations" echo " --disable-neon disable neon optimizations" echo " --disable-vis disable VIS optimizations" - echo " --disable-network disable network support [no]" - echo " --disable-ipv6 disable IPv6 support [no]" - echo " --disable-mpegaudio-hp faster (but less accurate)" - echo " MPEG audio decoding [no]" - echo " --disable-aandct disable AAN DCT code" - echo " --disable-fft disable FFT code" - echo " --disable-golomb disable Golomb code" - echo " --disable-mdct disable MDCT code" - echo " --enable-gray enable full grayscale support (slower color)" - echo " --disable-fastdiv disable table-based division" - echo " --disable-ffmpeg disable ffmpeg build" - echo " --disable-ffplay disable ffplay build" - echo " --disable-ffserver disable ffserver build" - echo " --enable-small optimize for size instead of speed" - echo " --enable-hardcoded-tables use hardcoded tables instead of runtime generation" - echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers" - echo " --enable-beos-netserver enable BeOS netserver" - echo " --disable-encoder=NAME disable encoder NAME" - echo " --enable-encoder=NAME enable encoder NAME" - echo " --disable-encoders disable all encoders" - echo " --disable-decoder=NAME disable decoder NAME" - echo " --enable-decoder=NAME enable decoder NAME" - echo " --disable-decoders disable all decoders" - echo " --disable-muxer=NAME disable muxer NAME" - echo " --enable-muxer=NAME enable muxer NAME" - echo " --disable-muxers disable all muxers" - echo " --disable-demuxer=NAME disable demuxer NAME" - echo " --enable-demuxer=NAME enable demuxer NAME" - echo " --disable-demuxers disable all demuxers" - echo " --enable-parser=NAME enable parser NAME" - echo " --disable-parser=NAME disable parser NAME" - echo " --disable-parsers disable all parsers" - echo " --enable-bsf=NAME enable bitstream filter NAME" - echo " --disable-bsf=NAME disable bitstream filter NAME" - echo " --disable-bsfs disable all bitstream filters" - echo " --enable-protocol=NAME enable protocol NAME" - echo " --disable-protocol=NAME disable protocol NAME" - echo " --disable-protocols disable all protocols" - echo " --disable-indevs disable input devices" - echo " --disable-outdevs disable output devices" - echo " --disable-devices disable all devices" - echo " --enable-filter=NAME enable filter NAME" - echo " --disable-filter=NAME disable filter NAME" - echo " --disable-filters disable all filters" - echo " --list-decoders show all available decoders" - echo " --list-encoders show all available encoders" - echo " --list-muxers show all available muxers" - echo " --list-demuxers show all available demuxers" - echo " --list-parsers show all available parsers" - echo " --list-protocols show all available protocols" - echo " --list-bsfs show all available bitstream filters" - echo " --list-indevs show all available input devices" - echo " --list-outdevs show all available output devices" - echo " --list-filters show all available filters" + echo " --disable-yasm disable use of yasm assembler" echo echo "Developer options (useful when working on FFmpeg itself):" echo " --disable-debug disable debugging symbols" @@ -236,6 +246,7 @@ echolog(){ die(){ echolog "$@" cat <> $header echo "${pfx}${ucname}=yes" >> $makefile @@ -509,12 +531,19 @@ check_cpp(){ check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC } +check_as(){ + log check_as "$@" + cat > $TMPC + log_file $TMPC + check_cmd $as $CFLAGS "$@" -c -o $TMPO $TMPC +} + check_asm(){ log check_asm "$@" name="$1" asm="$2" shift 2 - check_cc "$@" < int x; EOF @@ -586,7 +614,7 @@ check_func_headers(){ incs="$incs #include <$hdr>" done - check_ld "$@" < $logfile +echo "# $0 $FFMPEG_CONFIGURATION" > $logfile set >> $logfile test -n "$cross_prefix" && enable cross_compile @@ -1292,56 +1352,146 @@ nm_default="${cross_prefix}${nm_default}" ranlib="${cross_prefix}${ranlib}" strip="${cross_prefix}${strip}" -set_default cc nm +sysinclude_default="${sysroot}/usr/include" + +set_default cc nm sysinclude +as_default=$cc enabled cross_compile || host_cc_default=$cc set_default host_cc +exesuf() { + case $1 in + mingw32*|cygwin*|*-dos|freedos|opendos|os/2*) echo .exe ;; + esac +} + +EXESUF=$(exesuf $target_os) +HOSTEXESUF=$(exesuf $host_os) + # set temporary file name : ${TMPDIR:=$TEMPDIR} : ${TMPDIR:=$TMP} : ${TMPDIR:=/tmp} -TMPC="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c" -TMPE="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}" -TMPH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" -TMPO="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" -TMPS="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" -TMPSH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh" +if ! check_cmd type mktemp; then + # simple replacement for missing mktemp + # NOT SAFE FOR GENERAL USE + mktemp(){ + echo "${2%XXX*}.${HOSTNAME}.${UID}.$$" + } +fi + +tmpfile(){ + tmp=$(mktemp -u "${TMPDIR}/ffconf.XXXXXXXX")$2 && + (set -C; exec > $tmp) 2>/dev/null || + die "Unable to create temoporary file in $TMPDIR." + append TMPFILES $tmp + eval $1=$tmp +} + +trap 'rm -f -- $TMPFILES' EXIT +trap exit HUP INT TERM + +tmpfile TMPC .c +tmpfile TMPE $EXESUF +tmpfile TMPH .h +tmpfile TMPO .o +tmpfile TMPS .S +tmpfile TMPSH .sh + +unset -f mktemp + +# make sure we can execute files in $TMPDIR +cat > $TMPSH 2>> $logfile <> $logfile 2>&1 +if ! $TMPSH >> $logfile 2>&1; then + cat </dev/null | grep -qi gcc; then + cc_type=gcc +elif $cc --version 2>/dev/null | grep -q Intel; then + cc_type=icc +elif $cc -v 2>&1 | grep -q xlc; then + cc_type=xlc +elif $cc -V 2>/dev/null | grep -q Compaq; then + cc_type=ccc + DEPEND_CMD='$(CC) $(CFLAGS) -M $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o,"' + debuglevel=3 + add_ldflags -Wl,-z,now # calls to libots crash without this +elif $cc --vsn 2>/dev/null | grep -q RVCT; then + test -d "$sysroot" || die "No valid sysroot specified." + cc_type=armcc + armcc_conf="$PWD/armcc.conf" + $cc --arm_linux_configure \ + --arm_linux_config_file="$armcc_conf" \ + --configure_sysroot="$sysroot" \ + --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 || + die "Error creating armcc configuration file." + cc="$cc --arm_linux_config_file=$armcc_conf --translate_gcc" + as_default="${cross_prefix}gcc" +fi + +test -n "$cc_type" && enable $cc_type || echolog "Unknown C compiler $cc" + +set_default as + +if test -n "$sysroot"; then + case "$cc_type" in + gcc) + add_cflags --sysroot="$sysroot" + add_ldflags --sysroot="$sysroot" + ;; + esac +fi + +# compiler sanity check +check_exec < +EOF +check_cc -D_LARGEFILE_SOURCE < +EOF case "$arch" in - i386|i486|i586|i686|i86pc|BePC) - arch="x86" - subarch="x86_32" - enable fast_unaligned - ;; - x86_64|amd64) - arch="x86" - subarch="x86_32" - enable cmov - enable fast_cmov - enable fast_unaligned - check_cc < 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || - die "ERROR: MinGW runtime version must be >= 3.15." - enabled_any avisynth vfwcap_demuxer && - { check_cpp_condition w32api.h "(__W32API_MAJOR_VERSION > 3) || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION >= 13)" || - die "ERROR: avisynth and vfwcap_demuxer require w32api version 3.13 or later."; } + check_cflags -fno-common + if ! enabled x86_64; then + check_cpp_condition _mingw.h "(__MINGW32_MAJOR_VERSION > 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || + die "ERROR: MinGW runtime version must be >= 3.15." + enabled_any avisynth vfwcap_demuxer && + { check_cpp_condition w32api.h "(__W32API_MAJOR_VERSION > 3) || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION >= 13)" || + die "ERROR: avisynth and vfwcap_demuxer require w32api version 3.13 or later."; } + fi ;; cygwin*) target_os=cygwin shlibdir_default="$bindir_default" - VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil' - VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)' - if enabled swscale; then - VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale" - VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)" - fi - EXESUF=".exe" SLIBPREF="cyg" SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' @@ -1503,12 +1655,12 @@ case $target_os in SHFLAGS='-shared -Wl,--enable-auto-image-base' objformat="win32" enable dos_paths + check_cflags -fno-common ;; *-dos|freedos|opendos) - disable ffplay ffserver vhook + disable ffplay ffserver disable $INDEV_LIST $OUTDEV_LIST network_extralibs="-lsocket" - EXESUF=".exe" objformat="coff" enable dos_paths ;; @@ -1522,7 +1674,6 @@ case $target_os in os/2*) strip="lxlite" ln_s="cp -f" - EXESUF=".exe" FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap" SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' FFSERVERLDFLAGS="" @@ -1541,15 +1692,13 @@ case $target_os in emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;' SLIB_INSTALL_EXTRA_CMD='install -m 644 $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"' SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib' - disable vhook enable dos_paths ;; - interix) - disable vhook + gnu/kfreebsd) ;; *) - target_os="${target_os}-UNKNOWN" + die "Unknown OS '$target_os'." ;; esac @@ -1589,23 +1738,20 @@ EOF fi -if ! enabled 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" postproc - die_gpl_disabled "libx264" libx264 - die_gpl_disabled "libxvidcore" libxvid - die_gpl_disabled "FAAD2" libfaad2 - die_gpl_disabled "The X11 grabber" x11grab - die_gpl_disabled "The software scaler" swscale -fi +die_license_disabled() { + enabled $1 || { enabled $2 && die "$2 is $1 and --enable-$1 is not specified."; } +} + +die_license_disabled gpl libfaad2 +die_license_disabled gpl libx264 +die_license_disabled gpl libxvid +die_license_disabled gpl postproc +die_license_disabled gpl x11grab + +die_license_disabled nonfree libamr_nb +die_license_disabled nonfree libamr_wb +die_license_disabled nonfree libfaac -if ! enabled nonfree && enabled_any libamr_nb libamr_wb; then - die "libamr is nonfree and --enable-nonfree is not specified." -fi check_deps $ARCH_EXT_LIST @@ -1613,7 +1759,7 @@ test -z "$need_memalign" && need_memalign="$mmx" #Darwin CC versions if test $target_os = darwin; then - if $cc -v 2>&1 | grep -q xlc; then + if enabled xlc; then add_cflags -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto else add_cflags -pipe @@ -1663,7 +1809,7 @@ if test $cpu != "generic"; then Cell|CELL|cell) add_cflags -mcpu=cell warn_altivec disabled Cell - enable ppc64 + enable ppc64 ldbrx ;; # targets that do NOT support conditional mov (cmov) i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) @@ -1696,6 +1842,9 @@ if test $cpu != "generic"; then add_cflags -mcpu=$cpu ;; ev4|ev45|ev5|ev56|pca56|ev6|ev67) + enabled ccc && add_cflags -arch $cpu || add_cflags -mcpu=$cpu + ;; + bf*) add_cflags -mcpu=$cpu ;; *) @@ -1704,40 +1853,15 @@ if test $cpu != "generic"; then esac fi -# make sure we can execute files in $TMPDIR -cat > $TMPSH 2>> $logfile <> $logfile 2>&1 -if ! $TMPSH >> $logfile 2>&1; then - cat < /dev/null 2>&1; then - sdl_cflags=`"${SDL_CONFIG}" --cflags` + sdl_cflags=$("${SDL_CONFIG}" --cflags) temp_cflags $sdl_cflags - temp_extralibs `"${SDL_CONFIG}" --libs` + temp_extralibs $("${SDL_CONFIG}" --libs) if check_lib2 SDL.h SDL_Init; then - _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'` + _sdlversion=$("${SDL_CONFIG}" --version | sed 's/[^0-9]//g') if test "$_sdlversion" -lt 121 ; then enable sdl_too_old else @@ -2035,6 +2161,10 @@ check_header dev/ic/bt8xx.h check_header sys/soundcard.h check_header soundcard.h +check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound + +check_lib2 jack/jack.h jack_client_open -ljack + # deal with the X11 frame grabber enabled x11grab && check_header X11/Xlib.h && @@ -2068,9 +2198,11 @@ if enabled small; then check_cflags -Os # not all compilers support -Os optimizations="small" elif enabled optimizations; then - if $cc -v 2>&1 | grep -q xlc; then + if enabled xlc; then add_cflags -O5 add_ldflags -O5 + elif enabled ccc; then + add_cflags -fast else add_cflags -O3 fi @@ -2079,19 +2211,29 @@ check_cflags -fno-math-errno check_cflags -fno-signed-zeros # add some flags for Intel C Compiler -if $cc --version 2> /dev/null | grep -q Intel; then - # Just warnings, no remarks - check_cflags -w1 - # -wd: Disable following warnings - # 144, 167, 556: -Wno-pointer-sign - # 10006: ignoring unknown option -fno-signed-zeros - # 10156: ignoring option '-W'; no argument required - check_cflags -wd144,167,556,10006,10156 - # 11030: Warning unknown option --as-needed - # 10156: ignoring option '-export'; no argument required - check_ldflags -wd10156,11030 - # Allow to compile with optimizations - check_ldflags -march=$cpu +if enabled icc; then + # Just warnings, no remarks + check_cflags -w1 + # -wd: Disable following warnings + # 144, 167, 556: -Wno-pointer-sign + # 10006: ignoring unknown option -fno-signed-zeros + # 10156: ignoring option '-W'; no argument required + check_cflags -wd144,167,556,10006,10156 + # 11030: Warning unknown option --as-needed + # 10156: ignoring option '-export'; no argument required + check_ldflags -wd10156,11030 + # Allow to compile with optimizations + check_ldflags -march=$cpu + # icc 11.0 and 11.1 work with ebp_available, but don't pass the test + enable ebp_available +elif enabled ccc; then + # disable some annoying warnings + add_cflags -msg_disable cvtu32to64 + add_cflags -msg_disable embedcomment + add_cflags -msg_disable needconstext + add_cflags -msg_disable nomainieee + add_cflags -msg_disable ptrmismatch1 + add_cflags -msg_disable unreachcode fi # PIC flags for shared library objects where they are needed @@ -2109,13 +2251,12 @@ if enabled gprof; then add_ldflags -p fi -VHOOKCFLAGS="-fPIC" - # Find out if the .align argument is a power of two or not. check_asm asmalign_pot '".align 3"' enabled_any $DECODER_LIST && enable decoders enabled_any $ENCODER_LIST && enable encoders +enabled_any $HWACCEL_LIST && enable hwaccels enabled_any $BSF_LIST && enable bsfs enabled_any $DEMUXER_LIST && enable demuxers enabled_any $MUXER_LIST && enable muxers @@ -2131,6 +2272,7 @@ check_deps $CONFIG_LIST \ $HAVE_LIST \ $DECODER_LIST \ $ENCODER_LIST \ + $HWACCEL_LIST \ $PARSER_LIST \ $BSF_LIST \ $DEMUXER_LIST \ @@ -2152,14 +2294,20 @@ if test "$extra_version" != ""; then echo "version string suffix $extra_version" fi echo "big-endian ${bigendian-no}" +echo "runtime cpu detection ${runtime_cpudetect-no}" if enabled x86; then echo "yasm ${yasm-no}" echo "MMX enabled ${mmx-no}" + echo "MMX2 enabled ${mmx2-no}" + echo "3DNow! enabled ${amd3dnow-no}" + echo "3DNow! extended enabled ${amd3dnowext-no}" echo "SSE enabled ${sse-no}" + echo "SSSE3 enabled ${ssse3-no}" echo "CMOV enabled ${cmov-no}" echo "CMOV is fast ${fast_cmov-no}" echo "EBX available ${ebx_available-no}" echo "EBP available ${ebp_available-no}" + echo "10 operands supported ${ten_operands-no}" fi if enabled arm; then echo "ARMv5TE enabled ${armv5te-no}" @@ -2174,7 +2322,12 @@ if enabled mips; then fi if enabled ppc; then echo "AltiVec enabled ${altivec-no}" + echo "PPC 4xx optimizations ${ppc4xx-no}" echo "dcbzl available ${dcbzl-no}" + echo "performance report ${powerpc_perf-no}" +fi +if enabled sparc; then + echo "VIS enabled ${vis-no}" fi echo "gprof enabled ${gprof-no}" echo "debug symbols ${debug-no}" @@ -2183,14 +2336,8 @@ echo "optimizations ${optimizations-no}" echo "static ${static-no}" echo "shared ${shared-no}" echo "postprocessing support ${postproc-no}" -echo "software scaler enabled ${swscale-no}" echo "new filter support ${avfilter-no}" echo "filters using lavformat ${avfilter_lavf-no}" -echo "video hooking ${vhook-no}" -if enabled vhook; then - echo "Imlib2 support ${imlib2-no}" - echo "FreeType support ${freetype2-no}" -fi echo "network support ${network-no}" if enabled network; then echo "IPv6 support ${ipv6-no}" @@ -2212,18 +2359,18 @@ echo "libfaad dlopened ${libfaadbin-no}" echo "libgsm enabled ${libgsm-no}" echo "libmp3lame enabled ${libmp3lame-no}" echo "libnut enabled ${libnut-no}" +echo "libopenjpeg enabled ${libopenjpeg-no}" echo "libschroedinger enabled ${libschroedinger-no}" echo "libspeex enabled ${libspeex-no}" echo "libtheora enabled ${libtheora-no}" echo "libvorbis enabled ${libvorbis-no}" echo "libx264 enabled ${libx264-no}" echo "libxvid enabled ${libxvid-no}" -echo "vdpau enabled ${vdpau-no}" echo "zlib enabled ${zlib-no}" echo "bzlib enabled ${bzlib-no}" echo -for type in decoder encoder parser demuxer muxer protocol filter bsf indev outdev; do +for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do echo "Enabled ${type}s:" eval list=\$$(toupper $type)_LIST for part in $list; do @@ -2248,6 +2395,7 @@ echo "/* Automatically generated by configure - do not modify! */" > $TMPH echo "#ifndef FFMPEG_CONFIG_H" >> $TMPH echo "#define FFMPEG_CONFIG_H" >> $TMPH echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH +echo "#define FFMPEG_DATADIR \"$(eval c_escape $datadir)\"" >> $TMPH echo "FFMPEG_CONFIGURATION=$FFMPEG_CONFIGURATION" >> config.mak echo "prefix=$prefix" >> config.mak @@ -2255,8 +2403,13 @@ echo "LIBDIR=\$(DESTDIR)$libdir" >> config.mak echo "SHLIBDIR=\$(DESTDIR)$shlibdir" >> config.mak echo "INCDIR=\$(DESTDIR)$incdir" >> config.mak echo "BINDIR=\$(DESTDIR)$bindir" >> config.mak +echo "DATADIR=\$(DESTDIR)$datadir" >> config.mak echo "MANDIR=\$(DESTDIR)$mandir" >> config.mak +echo "SRC_PATH=\"$source_path\"" >> config.mak +echo "SRC_PATH_BARE=$source_path" >> config.mak +echo "BUILD_ROOT=\"$PWD\"" >> config.mak echo "CC=$cc" >> config.mak +echo "AS=$as" >> config.mak echo "YASM=$yasmexe" >> config.mak echo "AR=$ar" >> config.mak echo "RANLIB=$ranlib" >> config.mak @@ -2266,13 +2419,10 @@ enabled stripping && echo "STRIP=echo ignoring strip" >> config.mak echo "OPTFLAGS=$CFLAGS" >> config.mak -echo "VHOOKCFLAGS=$VHOOKCFLAGS" >> config.mak echo "LDFLAGS=$LDFLAGS" >> config.mak echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak echo "SHFLAGS=$SHFLAGS" >> config.mak echo "YASMFLAGS=$YASMFLAGS" >> config.mak -echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak -echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak echo "BUILD_STATIC=$static" >> config.mak echo "BUILDSUF=$build_suffix" >> config.mak @@ -2287,6 +2437,7 @@ echo "EXTRA_VERSION=$extra_version" >> config.mak echo "DEPEND_CMD=$DEPEND_CMD" >> config.mak echo "HOSTCC=$host_cc" >> config.mak echo "HOSTCFLAGS=$host_cflags" >> config.mak +echo "HOSTEXESUF=$HOSTEXESUF" >> config.mak echo "HOSTLDFLAGS=$host_ldflags" >> config.mak echo "HOSTLIBS=$host_libs" >> config.mak echo "TARGET_EXEC=$target_exec" >> config.mak @@ -2298,8 +2449,8 @@ if enabled bigendian; then fi if enabled sdl; then - echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak - echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak + echo "SDL_LIBS=$("${SDL_CONFIG}" --libs)" >> config.mak + echo "SDL_CFLAGS=$("${SDL_CONFIG}" --cflags)" >> config.mak fi if enabled texi2html; then echo "BUILD_DOC=yes" >> config.mak @@ -2346,6 +2497,7 @@ print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \ $CONFIG_EXTRA \ $DECODER_LIST \ $ENCODER_LIST \ + $HWACCEL_LIST \ $PARSER_LIST \ $BSF_LIST \ $DEMUXER_LIST \ @@ -2361,9 +2513,6 @@ if enabled small; then echo "#define av_always_inline" >> $TMPH fi -echo "SRC_PATH=\"$source_path\"" >> config.mak -echo "SRC_PATH_BARE=$source_path" >> config.mak -echo "BUILD_ROOT=\"$PWD\"" >> config.mak # Apparently it's not possible to portably echo a backslash. enabled asmalign_pot && @@ -2379,8 +2528,6 @@ cmp -s $TMPH config.h && echo "config.h is unchanged" || mv -f $TMPH config.h -rm -f $TMPC $TMPE $TMPH $TMPO $TMPS $TMPSH - # build tree in object directory if source path is different from current one if enabled source_path_used; then DIRS="\ @@ -2400,9 +2547,13 @@ if enabled source_path_used; then libavutil \ libpostproc \ libswscale \ + libswscale/bfin \ + libswscale/mlib \ + libswscale/ppc \ + libswscale/sparc \ + libswscale/x86 \ tests \ tools \ - vhook \ " FILES="\ Makefile \ @@ -2475,9 +2626,4 @@ enabled avfilter && pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" enabled postproc && pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION" -if enabled swscale; then - pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION" -else - pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavcodec = $LIBAVCODEC_VERSION" - apply libswscale/libswscale.pc sed s/^Libs:.*$/Libs:/ -fi +pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"