X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=9cde17805df85d00f7c613425bcf69afff4542ae;hb=23ce6e72123a40895baaeefeb27c7c18748bd67e;hp=d551379da480846e585ef766cd65cf2b7fec000c;hpb=92fe25875616c902047732aaff1fa70390be57c9;p=ffmpeg diff --git a/configure b/configure index d551379da48..9cde17805df 100755 --- a/configure +++ b/configure @@ -88,7 +88,7 @@ Configuration options: --disable-avcodec disable libavcodec build --disable-avformat disable libavformat build --disable-swscale disable libswscale build - --enable-postproc enable GPLed postprocessing support [no] + --disable-postproc disable libpostproc build --disable-avfilter disable video filter support [no] --disable-pthreads disable pthreads [auto] --enable-w32threads use Win32 threads [no] @@ -106,8 +106,8 @@ Configuration options: --disable-lpc disable LPC code --disable-mdct disable MDCT code --disable-rdft disable RDFT code - --disable-vaapi disable VAAPI code - --disable-vdpau disable VDPAU code + --enable-vaapi enable VAAPI code + --enable-vdpau enable VDPAU code --disable-dxva2 disable DXVA2 code --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary) --enable-hardcoded-tables use hardcoded tables instead of runtime generation @@ -191,7 +191,6 @@ External library support: --enable-zlib enable zlib [autodetect] Advanced options (experts only): - --source-path=PATH path to source code [$source_path] --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix] --enable-cross-compile assume a cross-compiler is used --sysroot=PATH root of cross-build tree @@ -238,6 +237,7 @@ Advanced options (experts only): --malloc-prefix=PFX prefix malloc and related names with PFX --enable-sram allow use of on-chip SRAM --disable-symver disable symbol versioning + --optflags override optimization-related compiler flags Developer options (useful when working on Libav itself): --disable-debug disable debugging symbols @@ -875,9 +875,9 @@ apply(){ } cp_if_changed(){ - cmp -s "$1" "$2" && - echo "$2 is unchanged" || - cp -f "$1" "$2" + cmp -s "$1" "$2" && echo "$2 is unchanged" && return + mkdir -p "$(dirname $2)" + cp -f "$1" "$2" } # CONFIG_LIST contains configurable options, while HAVE_LIST is for @@ -952,6 +952,7 @@ CONFIG_LIST=" mdct memalign_hack mlib + mpegaudiodsp network nonfree pic @@ -966,6 +967,7 @@ CONFIG_LIST=" static swscale swscale_alpha + thumb vaapi vdpau version3 @@ -1019,6 +1021,7 @@ ARCH_EXT_LIST=' ppc4xx sse ssse3 + vfpv3 vis ' @@ -1069,7 +1072,6 @@ HAVE_LIST=" inet_aton inline_asm isatty - kbhit ldbrx libdc1394_1 libdc1394_2 @@ -1091,7 +1093,6 @@ HAVE_LIST=" memalign mkstemp mmap - pld posix_memalign round roundf @@ -1118,7 +1119,6 @@ HAVE_LIST=" sys_select_h sys_soundcard_h sys_videoio_h - ten_operands threads trunc truncf @@ -1181,9 +1181,9 @@ CMDLINE_SET=" logfile malloc_prefix nm + optflags pkg_config samples - source_path sysinclude sysroot target_exec @@ -1205,6 +1205,7 @@ armv6t2_deps="arm" armvfp_deps="arm" iwmmxt_deps="arm" neon_deps="arm" +vfpv3_deps="armvfp" mmi_deps="mips" @@ -1236,6 +1237,7 @@ symver_if_any="symver_asm_label symver_gnu_asm" dct_select="rdft" mdct_select="fft" rdft_select="fft" +mpegaudiodsp_select="dct" # decoders / encoders / hardware accelerators aac_decoder_select="mdct sinewin" @@ -1258,6 +1260,7 @@ dca_decoder_select="mdct" dnxhd_encoder_select="aandct" dxa_decoder_select="zlib" eac3_decoder_select="ac3_decoder" +eac3_encoder_select="mdct ac3dsp" eamad_decoder_select="aandct" eatgq_decoder_select="aandct" eatqi_decoder_select="aandct" @@ -1287,11 +1290,16 @@ ljpeg_encoder_select="aandct" loco_decoder_select="golomb" mjpeg_encoder_select="aandct" mlp_decoder_select="mlp_parser" -mp1float_decoder_select="dct" -mp2float_decoder_select="dct" -mp3adufloat_decoder_select="dct" -mp3float_decoder_select="dct" -mp3on4float_decoder_select="dct" +mp1_decoder_select="mpegaudiodsp" +mp2_decoder_select="mpegaudiodsp" +mp3adu_decoder_select="mpegaudiodsp" +mp3_decoder_select="mpegaudiodsp" +mp3on4_decoder_select="mpegaudiodsp" +mp1float_decoder_select="mpegaudiodsp" +mp2float_decoder_select="mpegaudiodsp" +mp3adufloat_decoder_select="mpegaudiodsp" +mp3float_decoder_select="mpegaudiodsp" +mp3on4float_decoder_select="mpegaudiodsp" mpeg1video_encoder_select="aandct" mpeg2video_encoder_select="aandct" mpeg4_decoder_select="h263_decoder mpeg4video_parser" @@ -1316,7 +1324,7 @@ nellymoser_encoder_select="mdct sinewin" png_decoder_select="zlib" png_encoder_select="zlib" qcelp_decoder_select="lsp" -qdm2_decoder_select="mdct rdft" +qdm2_decoder_select="mdct rdft mpegaudiodsp" ra_144_encoder_select="lpc" rv10_decoder_select="h263_decoder" rv10_encoder_select="h263_encoder" @@ -1474,6 +1482,7 @@ yadif_filter_deps="gpl" # libraries avdevice_deps="avcodec avformat" avformat_deps="avcodec" +postproc_deps="gpl" # programs ffmpeg_deps="avcodec avformat swscale" @@ -1501,11 +1510,6 @@ test_deps(){ done } -set_ne_test_deps(){ - eval ${1}_be_test_deps="bigendian" - eval ${1}_le_test_deps="!bigendian" -} - test_deps _encoder _decoder \ adpcm_g726=g726 \ adpcm_ima_qt \ @@ -1582,15 +1586,6 @@ test_deps _muxer _demuxer \ ac3_fixed_test_deps="ac3_fixed_encoder ac3_decoder rm_muxer rm_demuxer" mpg_test_deps="mpeg1system_muxer mpegps_demuxer" -set_ne_test_deps pixdesc -set_ne_test_deps pixfmts_copy -set_ne_test_deps pixfmts_crop -set_ne_test_deps pixfmts_hflip -set_ne_test_deps pixfmts_null -set_ne_test_deps pixfmts_pad -set_ne_test_deps pixfmts_scale -set_ne_test_deps pixfmts_vflip - # default parameters logfile="config.log" @@ -1643,6 +1638,7 @@ enable ffprobe enable ffserver enable network enable optimizations +enable postproc enable protocols enable static enable swscale @@ -1662,9 +1658,10 @@ SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' +AS_O='-o $@' CC_O='-o $@' -host_cflags='-D_ISOC99_SOURCE -O3 -g -Wall' +host_cflags='-D_ISOC99_SOURCE -O3 -g' host_libs='-lm' target_path='$(CURDIR)' @@ -1675,13 +1672,10 @@ DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F) DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -MM' # find source path -source_path="$(dirname "$0")" -enable source_path_used if test -f configure; then - source_path="$(pwd)" - disable source_path_used + source_path=. else - source_path="$(cd "$source_path"; pwd)" + source_path=$(cd $(dirname "$0"); pwd) echo "$source_path" | grep -q '[[:blank:]]' && die "Out of tree builds are impossible with whitespace in source path." test -e "$source_path/config.h" && @@ -2061,6 +2055,7 @@ elif $cc -v 2>&1 | grep -q 'PathScale\|Path64'; then AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' speed_cflags='-O2' size_cflags='-Os' + filter_cflags='filter_out -Wdisabled-optimization' elif $cc -v 2>&1 | grep -q Open64; then cc_type=open64 cc_version=__OPEN64__ @@ -2069,6 +2064,7 @@ elif $cc -v 2>&1 | grep -q Open64; then AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' speed_cflags='-O2' size_cflags='-Os' + filter_cflags='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros' fi test -n "$cc_type" && enable $cc_type || @@ -2220,7 +2216,7 @@ elif enabled x86; then disable cmov ;; # targets that do support conditional mov (cmov) - i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2|amdfam10|barcelona|atom) + i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|amdfam10|barcelona|atom) cpuflags="-march=$cpu" enable cmov enable fast_cmov @@ -2257,7 +2253,7 @@ elif enabled arm; then case $cpu in cortex-a*) subarch=armv7a ;; cortex-r*) subarch=armv7r ;; - cortex-m*) subarch=armv7m ;; + cortex-m*) enable thumb; subarch=armv7m ;; arm11*) subarch=armv6 ;; arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;; armv4*|arm7*|arm9[24]*) subarch=armv4 ;; @@ -2326,6 +2322,7 @@ check_cc -D_LARGEFILE_SOURCE <=0.9.1"; } } enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 && - { check_cpp_condition x264.h "X264_BUILD >= 99" || - die "ERROR: libx264 version must be >= 0.99."; } + { check_cpp_condition x264.h "X264_BUILD >= 115" || + die "ERROR: libx264 version must be >= 0.115."; } enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib @@ -2965,6 +2946,7 @@ check_cflags -Wdeclaration-after-statement check_cflags -Wall check_cflags -Wno-parentheses check_cflags -Wno-switch +check_cflags -Wno-format-zero-length check_cflags -Wdisabled-optimization check_cflags -Wpointer-arith check_cflags -Wredundant-decls @@ -2978,7 +2960,7 @@ enabled extra_warnings && check_cflags -Winline # add some linker flags check_ldflags -Wl,--warn-common -check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' +check_ldflags -Wl,-rpath-link,libpostproc -Wl,-rpath-link,libswscale -Wl,-rpath-link,libavfilter -Wl,-rpath-link,libavdevice -Wl,-rpath-link,libavformat -Wl,-rpath-link,libavcodec -Wl,-rpath-link,libavutil test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic echo "X{};" > $TMPV @@ -2994,9 +2976,10 @@ void ff_foo(void) {} EOF fi -if enabled small; then +if [ -n "$optflags" ]; then + add_cflags $optflags +elif enabled small; then add_cflags $size_cflags - optimizations="small" elif enabled optimizations; then add_cflags $speed_cflags else @@ -3050,6 +3033,8 @@ elif enabled armcc; then add_cflags -W${armcc_opt},--diag_suppress=1207 add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition add_cflags -W${armcc_opt},--diag_suppress=3343 # hardfp compat + add_cflags -W${armcc_opt},--diag_suppress=167 # pointer sign + add_cflags -W${armcc_opt},--diag_suppress=513 # pointer sign elif enabled tms470; then add_cflags -pds=824 -pds=837 elif enabled pathscale; then @@ -3080,6 +3065,9 @@ check_deps $CONFIG_LIST \ enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } +! enabled_any memalign posix_memalign malloc_aligned && + enabled_any $need_memalign && enable memalign_hack + echo "install prefix $prefix" echo "source path $source_path" echo "C compiler $cc" @@ -3093,18 +3081,18 @@ fi echo "big-endian ${bigendian-no}" echo "runtime cpu detection ${runtime_cpudetect-no}" if enabled x86; then - echo "yasm ${yasm-no}" + echo "${yasmexe} ${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 "AVX enabled ${avx-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}" @@ -3126,6 +3114,7 @@ if enabled sparc; then echo "VIS enabled ${vis-no}" fi echo "debug symbols ${debug-no}" +echo "optimize for size ${small-no}" echo "optimizations ${optimizations-no}" echo "static ${static-no}" echo "shared ${shared-no}" @@ -3135,6 +3124,9 @@ echo "network support ${network-no}" echo "threading support ${thread_type-no}" echo "SDL support ${sdl-no}" echo "Sun medialib support ${mlib-no}" +echo "libdxva2 enabled ${dxva2-no}" +echo "libva enabled ${vaapi-no}" +echo "libvdpau enabled ${vdpau-no}" echo "AVISynth enabled ${avisynth-no}" echo "frei0r enabled ${frei0r-no}" echo "libdc1394 support ${libdc1394-no}" @@ -3151,7 +3143,6 @@ echo "librtmp enabled ${librtmp-no}" echo "libschroedinger enabled ${libschroedinger-no}" echo "libspeex enabled ${libspeex-no}" echo "libtheora enabled ${libtheora-no}" -echo "libva enabled ${vaapi-no}" echo "libvo-aacenc support ${libvo_aacenc-no}" echo "libvo-amrwbenc support ${libvo_amrwbenc-no}" echo "libvorbis enabled ${libvorbis-no}" @@ -3185,49 +3176,12 @@ echo "License: $license" echo "Creating config.mak and config.h..." -# build tree in object directory if source path is different from current one -if enabled source_path_used; then - DIRS=" - doc - libavcodec - libavcodec/$arch - libavdevice - libavfilter - libavfilter/$arch - libavformat - libavutil - libavutil/$arch - libpostproc - libswscale - libswscale/$arch - tests - tools - " - FILES=" - Makefile - common.mak - subdir.mak - doc/texi2pod.pl - libavcodec/Makefile - libavcodec/${arch}/Makefile - libavdevice/Makefile - libavfilter/Makefile - libavfilter/${arch}/Makefile - libavformat/Makefile - libavutil/Makefile - libpostproc/Makefile - libswscale/Makefile - " - map 'mkdir -p $v' $DIRS; - map 'test -f "$source_path/$v" && $ln_s "$source_path/$v" $v' $FILES -fi +test -e Makefile || $ln_s "$source_path/Makefile" . config_files="$TMPH config.mak" cat > config.mak <> $TMPH -echo "endif # LIBAV_CONFIG_MAK" >> config.mak # Do not overwrite an unchanged config.h to avoid superfluous rebuilds. cp_if_changed $TMPH config.h @@ -3403,6 +3355,7 @@ version=$3 libs=$4 requires=$5 enabled ${name#lib} || return 0 +mkdir -p $name cat < $name/$name.pc prefix=$prefix exec_prefix=\${prefix}