X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=32c3544fb3e7635539bbdeaf16b25e0f999cf720;hb=70739381213b087cca9570b66561dc57652b6fb9;hp=a882501c676c6bef9fae53140e6c053a4c7c3c99;hpb=a42bb9d624b6a08242d4227ed121dda5f98ecded;p=ffmpeg diff --git a/configure b/configure index a882501c676..32c3544fb3e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #!/bin/sh # -# FFmpeg configure script +# Libav configure script # # Copyright (c) 2000-2002 Fabrice Bellard # Copyright (c) 2005-2008 Diego Biurrun @@ -44,9 +44,9 @@ if test "$E1" != 0 || test "$E2" = 0; then echo "No compatible shell script interpreter found." echo "This configure script requires a POSIX-compatible shell" echo "such as bash or ksh." - echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH." + echo "THIS IS NOT A BUG IN LIBAV, DO NOT REPORT IT AS SUCH." echo "Instead, install a working POSIX-compatible shell." - echo "Disabling this configure test will create a broken FFmpeg." + echo "Disabling this configure test will create a broken Libav." 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." @@ -86,7 +86,6 @@ Configuration options: --disable-ffserver disable ffserver build --disable-avdevice disable libavdevice build --disable-avcodec disable libavcodec build - --disable-avcore disable libavcore build --disable-avformat disable libavformat build --disable-swscale disable libswscale build --enable-postproc enable GPLed postprocessing support [no] @@ -179,6 +178,8 @@ External library support: --enable-libschroedinger enable Dirac support via libschroedinger [no] --enable-libspeex enable Speex decoding via libspeex [no] --enable-libtheora enable Theora encoding via libtheora [no] + --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no] + --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no] --enable-libvorbis enable Vorbis encoding via libvorbis, native implementation exists [no] --enable-libvpx enable VP8 support via libvpx [no] @@ -223,6 +224,7 @@ Advanced options (experts only): --disable-mmx2 disable MMX2 optimizations --disable-sse disable SSE optimizations --disable-ssse3 disable SSSE3 optimizations + --disable-avx disable AVX optimizations --disable-armv5te disable armv5te optimizations --disable-armv6 disable armv6 optimizations --disable-armv6t2 disable armv6t2 optimizations @@ -235,14 +237,15 @@ Advanced options (experts only): --enable-pic build position-independent code --malloc-prefix=PFX prefix malloc and related names with PFX --enable-sram allow use of on-chip SRAM + --disable-symver disable symbol versioning -Developer options (useful when working on FFmpeg itself): +Developer options (useful when working on Libav itself): --disable-debug disable debugging symbols --enable-debug=LEVEL set the debug level [$debuglevel] --disable-optimizations disable compiler optimizations --enable-extra-warnings enable more compiler warnings - --disable-stripping disable stripping of executables and shared libraries - --samples=PATH location of test samples for FATE + --samples=PATH location of test samples for FATE, if not set use + \$FATE_SAMPLES at make invocation time. NOTE: Object files are built at the place where configure is launched. EOF @@ -276,8 +279,8 @@ die(){ cat <" + done + for func in $funcs; do + echo "long check_$func(void) { return (long) $func; }" + done + echo "int main(void) { return 0; }" + } | check_ld "$@" && enable $funcs && enable_safe $headers } check_cpp_condition(){ @@ -725,9 +747,23 @@ check_lib(){ check_lib2(){ log check_lib2 "$@" headers="$1" - func="$2" + funcs="$2" shift 2 - check_func_headers "$headers" $func "$@" && add_extralibs "$@" + check_func_headers "$headers" "$funcs" "$@" && add_extralibs "$@" +} + +check_pkg_config(){ + log check_pkg_config "$@" + pkg="$1" + headers="$2" + funcs="$3" + shift 3 + $pkg_config --exists $pkg || return + pkg_cflags=$($pkg_config --cflags $pkg) + pkg_libs=$($pkg_config --libs $pkg) + check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && + set_safe ${pkg}_cflags $pkg_cflags && + set_safe ${pkg}_libs $pkg_libs } check_exec(){ @@ -811,6 +847,13 @@ require2(){ check_lib2 "$headers" $func "$@" || die "ERROR: $name not found" } +require_pkg_config(){ + pkg="$1" + check_pkg_config "$@" || die "ERROR: $pkg not found" + add_cflags $(get_safe ${pkg}_cflags) + add_extralibs $(get_safe ${pkg}_libs) +} + check_host_cc(){ log check_host_cc "$@" cat > $TMPC @@ -857,8 +900,8 @@ COMPONENT_LIST=" CONFIG_LIST=" $COMPONENT_LIST aandct + ac3dsp avcodec - avcore avdevice avfilter avformat @@ -896,6 +939,8 @@ CONFIG_LIST=" libschroedinger libspeex libtheora + libvo_aacenc + libvo_amrwbenc libvorbis libvpx libx264 @@ -915,6 +960,7 @@ CONFIG_LIST=" rtpdec runtime_cpudetect shared + sinewin small sram static @@ -964,6 +1010,7 @@ ARCH_EXT_LIST=' armv6 armv6t2 armvfp + avx iwmmxt mmi mmx @@ -993,7 +1040,6 @@ HAVE_LIST=" bswap closesocket cmov - conio_h dcbzl dev_bktr_ioctl_bt848_h dev_bktr_ioctl_meteor_h @@ -1023,6 +1069,7 @@ HAVE_LIST=" inet_aton inline_asm isatty + kbhit ldbrx libdc1394_1 libdc1394_2 @@ -1039,8 +1086,10 @@ HAVE_LIST=" machine_ioctl_bt848_h machine_ioctl_meteor_h malloc_h + MapViewOfFile memalign mkstemp + mmap pld posix_memalign round @@ -1048,6 +1097,7 @@ HAVE_LIST=" sdl sdl_video_size setmode + sndio_h socklen_t soundcard_h poll_h @@ -1068,7 +1118,6 @@ HAVE_LIST=" sys_soundcard_h sys_videoio_h ten_operands - termios_h threads truncf vfp_args @@ -1096,7 +1145,7 @@ CMDLINE_SELECT=" extra_warnings logging optimizations - stripping + symver yasm " @@ -1130,9 +1179,9 @@ CMDLINE_SET=" logfile malloc_prefix nm + pkg_config samples source_path - strip sysinclude sysroot target_exec @@ -1169,6 +1218,7 @@ mmx_deps="x86" mmx2_deps="mmx" sse_deps="mmx" ssse3_deps="sse" +avx_deps="ssse3" aligned_stack_if_any="ppc x86" fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" @@ -1186,18 +1236,21 @@ mdct_select="fft" rdft_select="fft" # decoders / encoders / hardware accelerators -aac_decoder_select="mdct rdft" -aac_encoder_select="mdct" +aac_decoder_select="mdct rdft sinewin" +aac_encoder_select="mdct sinewin" aac_latm_decoder_select="aac_decoder aac_latm_parser" -ac3_decoder_select="mdct ac3_parser" +ac3_decoder_select="mdct ac3dsp ac3_parser" +ac3_encoder_select="mdct ac3dsp" +ac3_fixed_encoder_select="ac3dsp" alac_encoder_select="lpc" amrnb_decoder_select="lsp" -atrac1_decoder_select="mdct" +amrwb_decoder_select="lsp" +atrac1_decoder_select="mdct sinewin" atrac3_decoder_select="mdct" binkaudio_dct_decoder_select="mdct rdft dct" binkaudio_rdft_decoder_select="mdct rdft" cavs_decoder_select="golomb" -cook_decoder_select="mdct" +cook_decoder_select="mdct sinewin" cscd_decoder_suggest="zlib" dca_decoder_select="mdct" dnxhd_encoder_select="aandct" @@ -1256,8 +1309,8 @@ msmpeg4v2_decoder_select="h263_decoder" msmpeg4v2_encoder_select="h263_encoder" msmpeg4v3_decoder_select="h263_decoder" msmpeg4v3_encoder_select="h263_encoder" -nellymoser_decoder_select="mdct" -nellymoser_encoder_select="mdct" +nellymoser_decoder_select="mdct sinewin" +nellymoser_encoder_select="mdct sinewin" png_decoder_select="zlib" png_encoder_select="zlib" qcelp_decoder_select="lsp" @@ -1273,9 +1326,6 @@ shorten_decoder_select="golomb" sipr_decoder_select="lsp" snow_decoder_select="dwt" snow_encoder_select="aandct dwt" -sonic_decoder_select="golomb" -sonic_encoder_select="golomb" -sonic_ls_encoder_select="golomb" svq1_encoder_select="aandct" svq3_decoder_select="golomb h264dsp h264pred" svq3_decoder_suggest="zlib" @@ -1284,7 +1334,7 @@ tiff_decoder_suggest="zlib" tiff_encoder_suggest="zlib" truehd_decoder_select="mlp_decoder" tscc_decoder_select="zlib" -twinvq_decoder_select="mdct lsp" +twinvq_decoder_select="mdct lsp sinewin" vc1_decoder_select="h263_decoder" vc1_dxva2_hwaccel_deps="dxva2api_h DXVA_PictureParameters_wDecodedPictureIndex" vc1_dxva2_hwaccel_select="dxva2 vc1_decoder" @@ -1296,12 +1346,12 @@ vp6_decoder_select="huffman" vp6a_decoder_select="vp6_decoder" vp6f_decoder_select="vp6_decoder" vp8_decoder_select="h264pred" -wmapro_decoder_select="mdct" -wmav1_decoder_select="mdct" -wmav1_encoder_select="mdct" -wmav2_decoder_select="mdct" -wmav2_encoder_select="mdct" -wmavoice_decoder_select="lsp rdft dct mdct" +wmapro_decoder_select="mdct sinewin" +wmav1_decoder_select="mdct sinewin" +wmav1_encoder_select="mdct sinewin" +wmav2_decoder_select="mdct sinewin" +wmav2_encoder_select="mdct sinewin" +wmavoice_decoder_select="lsp rdft dct mdct sinewin" wmv1_decoder_select="h263_decoder" wmv1_encoder_select="h263_encoder" wmv2_decoder_select="h263_decoder" @@ -1338,6 +1388,8 @@ libschroedinger_decoder_deps="libschroedinger" libschroedinger_encoder_deps="libschroedinger" libspeex_decoder_deps="libspeex" libtheora_encoder_deps="libtheora" +libvo_aacenc_encoder_deps="libvo_aacenc" +libvo_amrwbenc_encoder_deps="libvo_amrwbenc" libvorbis_encoder_deps="libvorbis" libvpx_decoder_deps="libvpx" libvpx_encoder_deps="libvpx" @@ -1346,18 +1398,19 @@ libxavs_encoder_deps="libxavs" libxvid_encoder_deps="libxvid" # demuxers / muxers -ac3_demuxer_deps="ac3_parser" +ac3_demuxer_select="ac3_parser" asf_stream_muxer_select="asf_muxer" avisynth_demuxer_deps="avisynth" -dirac_demuxer_deps="dirac_parser" +dirac_demuxer_select="dirac_parser" eac3_demuxer_select="ac3_parser" +flac_demuxer_select="flac_parser" ipod_muxer_select="mov_muxer" libnut_demuxer_deps="libnut" libnut_muxer_deps="libnut" matroska_audio_muxer_select="matroska_muxer" matroska_demuxer_suggest="zlib bzlib" mov_demuxer_suggest="zlib" -mp3_demuxer_deps="mpegaudio_parser" +mp3_demuxer_select="mpegaudio_parser" mp4_muxer_select="mov_muxer" mpegtsraw_demuxer_select="mpegts_demuxer" mxf_d10_muxer_select="mxf_muxer" @@ -1380,10 +1433,13 @@ alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp" alsa_outdev_deps="alsa_asoundlib_h" bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" dv1394_indev_deps="dv1394 dv_demuxer" +fbdev_indev_deps="linux_fb_h" jack_indev_deps="jack_jack_h" libdc1394_indev_deps="libdc1394" oss_indev_deps_any="soundcard_h sys_soundcard_h" oss_outdev_deps_any="soundcard_h sys_soundcard_h" +sndio_indev_deps="sndio_h" +sndio_outdev_deps="sndio_h" v4l_indev_deps="linux_videodev_h" v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines" @@ -1407,7 +1463,9 @@ blackframe_filter_deps="gpl" cropdetect_filter_deps="gpl" frei0r_filter_deps="frei0r dlopen strtok_r" frei0r_src_filter_deps="frei0r dlopen strtok_r" -ocv_smooth_filter_deps="libopencv" +hqdn3d_filter_deps="gpl" +scale_filter_deps="swscale" +ocv_filter_deps="libopencv" yadif_filter_deps="gpl" # libraries @@ -1420,7 +1478,7 @@ ffmpeg_select="buffer_filter" ffplay_deps="avcodec avformat swscale sdl" ffplay_select="rdft" ffprobe_deps="avcodec avformat" -ffserver_deps="avformat ffm_muxer rtp_protocol rtsp_demuxer" +ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer" ffserver_extralibs='$ldl' doc_deps="texi2html" @@ -1446,7 +1504,6 @@ set_ne_test_deps(){ } test_deps _encoder _decoder \ - ac3 \ adpcm_g726=g726 \ adpcm_ima_qt \ adpcm_ima_wav \ @@ -1478,6 +1535,7 @@ test_deps _encoder _decoder \ pbm=pbmpipe \ pcx \ pgm="pgm pgmpipe" \ + png \ ppm="ppm ppmpipe" \ rawvideo="rgb yuv" \ roq \ @@ -1518,9 +1576,11 @@ test_deps _muxer _demuxer \ wav \ yuv4mpegpipe=yuv4mpeg \ +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 @@ -1549,8 +1609,8 @@ host_cc_default="gcc" ln_s="ln -sf" nm_default="nm" objformat="elf" +pkg_config_default=pkg-config ranlib="ranlib" -strip_default="strip" yasmexe="yasm" nogas=":" @@ -1566,7 +1626,6 @@ host_os=$target_os_default # configurable options enable avcodec -enable avcore enable avdevice enable avfilter enable avformat @@ -1584,7 +1643,6 @@ enable network enable optimizations enable protocols enable static -enable stripping enable swscale enable swscale_alpha @@ -1632,7 +1690,7 @@ for v in "$@"; do r=${v#*=} l=${v%"$r"} r=$(sh_quote "$r") - FFMPEG_CONFIGURATION="${FFMPEG_CONFIGURATION# } ${l}${r}" + LIBAV_CONFIGURATION="${LIBAV_CONFIGURATION# } ${l}${r}" done find_things(){ @@ -1744,7 +1802,7 @@ done disabled logging && logfile=/dev/null -echo "# $0 $FFMPEG_CONFIGURATION" > $logfile +echo "# $0 $LIBAV_CONFIGURATION" > $logfile set >> $logfile test -n "$cross_prefix" && enable cross_compile @@ -1759,18 +1817,18 @@ set_default arch target_os ar_default="${cross_prefix}${ar_default}" cc_default="${cross_prefix}${cc_default}" nm_default="${cross_prefix}${nm_default}" +pkg_config_default="${cross_prefix}${pkg_config_default}" ranlib="${cross_prefix}${ranlib}" -strip_default="${cross_prefix}${strip_default}" sysinclude_default="${sysroot}/usr/include" -set_default cc nm strip sysinclude +set_default cc nm pkg_config sysinclude enabled cross_compile || host_cc_default=$cc set_default host_cc exesuf() { case $1 in - mingw32*|cygwin*|*-dos|freedos|opendos|os/2*) echo .exe ;; + mingw32*|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo .exe ;; esac } @@ -1782,11 +1840,11 @@ HOSTEXESUF=$(exesuf $host_os) : ${TMPDIR:=$TMP} : ${TMPDIR:=/tmp} -if ! check_cmd type mktemp; then +if ! check_cmd mktemp -u XXXXXX; then # simple replacement for missing mktemp # NOT SAFE FOR GENERAL USE mktemp(){ - echo "${2%XXX*}.${HOSTNAME}.${UID}.$$" + echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$" } fi @@ -1799,7 +1857,6 @@ tmpfile(){ } trap 'rm -f -- $TMPFILES' EXIT -trap exit HUP INT TERM tmpfile TMPC .c tmpfile TMPE $EXESUF @@ -1812,6 +1869,8 @@ tmpfile TMPASM .asm unset -f mktemp +chmod +x $TMPE + # make sure we can execute files in $TMPDIR cat > $TMPSH 2>> $logfile <&1 | grep -q '^gcc.*LLVM'; then elif $cc -v 2>&1 | grep -qi ^gcc; then cc_type=gcc cc_version=__VERSION__ - gcc_extra_ver=$(expr "$($cc --version | head -n1)" : '.*\((.*)\)') - cc_ident="gcc $($cc -dumpversion) $gcc_extra_ver" + gcc_version=$($cc --version | head -n1) + gcc_basever=$($cc -dumpversion) + gcc_pkg_ver=$(expr "$gcc_version" : '[^ ]* \(([^)]*)\)') + gcc_ext_ver=$(expr "$gcc_version" : ".*$gcc_pkg_ver $gcc_basever \\(.*\\)") + cc_ident=$(cleanws "gcc $gcc_basever $gcc_pkg_ver $gcc_ext_ver") if ! $cc -dumpversion | grep -q '^2\.'; then CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' @@ -1892,6 +1954,7 @@ elif $cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then AS_DEPFLAGS='-MMD' speed_cflags='-O3' size_cflags='-Os' + filter_asflags="filter_out -W${armcc_opt}*" elif $cc -version 2>/dev/null | grep -q TMS470; then cc_type=tms470 cc_version="AV_STRINGIFY(__TI_COMPILER_VERSION__)" @@ -2017,7 +2080,7 @@ add_asflags $extra_cflags if test -n "$sysroot"; then case "$cc_type" in - gcc|llvm_gcc) + gcc|llvm_gcc|clang) add_cppflags --sysroot="$sysroot" add_ldflags --sysroot="$sysroot" ;; @@ -2025,10 +2088,6 @@ if test -n "$sysroot"; then add_cppflags -I"$sysinclude" add_ldflags --sysroot="$sysroot" ;; - clang) - add_cppflags -isysroot "$sysroot" - add_ldflags -isysroot "$sysroot" - ;; esac fi @@ -2088,7 +2147,7 @@ case "$arch" in arch="sparc" subarch="sparc64" ;; - i[3-6]86|i86pc|BePC|x86_64|amd64) + i[3-6]86|i86pc|BePC|x86pc|x86_64|amd64) arch="x86" ;; esac @@ -2284,6 +2343,7 @@ case $target_os in haiku) prefix_default="/boot/common" network_extralibs="-lnetwork" + host_libs= ;; sunos) FFSERVERLDFLAGS="" @@ -2294,6 +2354,7 @@ case $target_os in nm_opts='-P -g' ;; netbsd) + disable symver oss_indev_extralibs="-lossaudio" oss_outdev_extralibs="-lossaudio" add_cppflags -D_XOPEN_SOURCE=600 @@ -2301,28 +2362,32 @@ case $target_os in openbsd) enable malloc_aligned # On OpenBSD 4.5. the compiler does not use PIC unless - # explicitly using -fPIC. FFmpeg builds fine without PIC, + # explicitly using -fPIC. Libav builds fine without PIC, # however the generated executable will not do anything # (simply quits with exit-code 1, no crash, no output). # Thus explicitly enable PIC here. enable pic + disable symver SHFLAGS='-shared' oss_indev_extralibs="-lossaudio" oss_outdev_extralibs="-lossaudio" ;; - freebsd|dragonfly) + dragonfly) + enable malloc_aligned + disable symver + ;; + freebsd) enable malloc_aligned ;; bsd/os) add_extralibs -lpoll -lgnugetopt - strip="strip -d" ;; darwin) enable malloc_aligned gas="gas-preprocessor.pl $cc" enabled ppc && add_asflags -force_cpusubtype_ALL - SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress' - strip="${strip} -x" + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)' + enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress add_ldflags -Wl,-dynamic,-search_paths_first SLIBSUF=".dylib" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' @@ -2342,17 +2407,16 @@ case $target_os in LIBTARGET=i386 if enabled x86_64; then enable malloc_aligned - LIBTARGET=x64 + LIBTARGET="i386:x86-64" elif enabled arm; then - LIBTARGET=arm + LIBTARGET=arm-wince fi shlibdir_default="$bindir_default" - disable ffserver SLIBPREF="" SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)' + SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"; \ install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)"; \ install -d "$(LIBDIR)"; \ @@ -2360,11 +2424,13 @@ case $target_os in SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"' SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' objformat="win32" + dlltool="${cross_prefix}dlltool" enable dos_paths check_cflags -fno-common check_cpp_condition _mingw.h "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) \ || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || die "ERROR: MinGW runtime version must be >= 3.15." + add_cppflags -U__STRICT_ANSI__ ;; cygwin*) target_os=cygwin @@ -2379,8 +2445,6 @@ case $target_os in check_cflags -fno-common ;; *-dos|freedos|opendos) - disable ffplay ffserver - disable $INDEV_LIST $OUTDEV_LIST network_extralibs="-lsocket" objformat="coff" enable dos_paths @@ -2393,7 +2457,6 @@ case $target_os in ranlib="echo ignoring ranlib" ;; os/2*) - strip="lxlite" ln_s="cp -f" add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' @@ -2419,6 +2482,15 @@ case $target_os in ;; gnu) ;; + qnx) + add_cppflags -D_QNX_SOURCE + network_extralibs="-lsocket" + ;; + symbian) + SLIBSUF=".dll" + enable dos_paths + add_cflags --include=$sysinclude/gcce/gcce.h + ;; none) ;; *) @@ -2426,7 +2498,7 @@ case $target_os in ;; esac -echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$FFMPEG_CONFIGURATION" >config.fate +echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$LIBAV_CONFIGURATION" >config.fate check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic @@ -2459,11 +2531,11 @@ die_license_disabled nonfree libfaac die_license_disabled version3 libopencore_amrnb die_license_disabled version3 libopencore_amrwb +die_license_disabled version3 libvo_aacenc +die_license_disabled version3 libvo_amrwbenc enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; } -check_deps $ARCH_EXT_LIST - disabled optimizations || check_cflags -fomit-frame-pointer enable_pic() { @@ -2514,10 +2586,18 @@ elif enabled arm; then check_cflags -marm nogas=die - check_ld <= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame enabled libnut && require libnut libnut.h nut_demuxer_init -lnut enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb -enabled libopencv && { check_lib opencv/cv.h cvCreateImageHeader $(pkg-config --libs opencv) || - die "ERROR: libopencv not found"; } +enabled libopencv && require_pkg_config opencv opencv/cv.h cvCreateImageHeader enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg -enabled librtmp && { check_lib librtmp/rtmp.h RTMP_Socket $(pkg-config --libs librtmp) || - die "ERROR: librtmp not found or RTMP_Socket() missing, librtmp version must be >= 2.2.f"; } -enabled libschroedinger && add_cflags $(pkg-config --cflags schroedinger-1.0) && - require libschroedinger schroedinger/schro.h schro_init $(pkg-config --libs schroedinger-1.0) +enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket +enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg +enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc +enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg enabled libvpx && { enabled libvpx_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx || @@ -2787,11 +2896,7 @@ if enabled libdc1394; then die "ERROR: No version of libdc1394 found " fi -SDL_CONFIG="${cross_prefix}sdl-config" -if "${SDL_CONFIG}" --version > /dev/null 2>&1; then - sdl_cflags=$("${SDL_CONFIG}" --cflags) - sdl_libs=$("${SDL_CONFIG}" --libs) - check_func_headers SDL.h SDL_Init $sdl_cflags $sdl_libs && +if check_pkg_config sdl SDL_version.h SDL_Linked_Version; then check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags && enable sdl && check_struct SDL.h SDL_VideoInfo current_w $sdl_cflags && enable sdl_video_size @@ -2799,32 +2904,7 @@ fi texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html -if enabled network; then - check_type "sys/types.h sys/socket.h" socklen_t - check_type netdb.h "struct addrinfo" - check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE - check_type netinet/in.h "struct sockaddr_in6" - check_type "sys/types.h sys/socket.h" "struct sockaddr_storage" - check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len - # Prefer arpa/inet.h over winsock2 - if check_header arpa/inet.h ; then - check_func closesocket - elif check_header winsock2.h ; then - check_func_headers winsock2.h closesocket -lws2 && \ - network_extralibs="-lws2" || \ - { check_func_headers winsock2.h closesocket -lws2_32 && \ - network_extralibs="-lws2_32"; } - check_type ws2tcpip.h socklen_t - check_type ws2tcpip.h "struct addrinfo" - check_type ws2tcpip.h "struct ipv6_mreq" - check_type ws2tcpip.h "struct sockaddr_in6" - check_type ws2tcpip.h "struct sockaddr_storage" - check_struct winsock2.h "struct sockaddr" sa_len - else - disable network - fi -fi - +check_header linux/fb.h check_header linux/videodev.h check_header linux/videodev2.h check_header sys/videoio.h @@ -2843,6 +2923,7 @@ check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_def check_header dev/video/bktr/ioctl_bt848.h; } || check_header dev/ic/bt8xx.h +check_header sndio.h check_header sys/soundcard.h check_header soundcard.h @@ -2850,6 +2931,8 @@ enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimes enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack +enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio + enabled x11grab && check_header X11/Xlib.h && check_header X11/extensions/XShm.h && @@ -2885,9 +2968,8 @@ enabled extra_warnings && check_cflags -Winline # add some linker flags check_ldflags -Wl,--warn-common -check_ldflags -Wl,--as-needed -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)/libavcore -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' -check_ldflags -Wl,-Bsymbolic +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' +test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic echo "X{};" > $TMPV if test_ldflags -Wl,--version-script,$TMPV; then @@ -2918,10 +3000,11 @@ if enabled icc; then check_cflags -w1 # -wd: Disable following warnings # 144, 167, 556: -Wno-pointer-sign + # 1292: attribute "foo" ignored # 10006: ignoring unknown option -fno-signed-zeros # 10148: ignoring unknown option -Wno-parentheses # 10156: ignoring option '-W'; no argument required - check_cflags -wd144,167,556,10006,10148,10156 + check_cflags -wd144,167,556,1292,10006,10148,10156 # 11030: Warning unknown option --as-needed # 10156: ignoring option '-export'; no argument required check_ldflags -wd10156,11030 @@ -2955,8 +3038,12 @@ elif enabled armcc; then # 2523: use of inline assembler is deprecated add_cflags -W${armcc_opt},--diag_suppress=2523 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 elif enabled tms470; then add_cflags -pds=824 -pds=837 +elif enabled pathscale; then + add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt=OFF fi enabled_any $THREADS_LIST && enable threads @@ -3029,7 +3116,6 @@ if enabled sparc; then echo "VIS enabled ${vis-no}" fi echo "debug symbols ${debug-no}" -echo "strip symbols ${stripping-no}" echo "optimizations ${optimizations-no}" echo "static ${static-no}" echo "shared ${shared-no}" @@ -3055,6 +3141,9 @@ 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}" echo "libvpx enabled ${libvpx-no}" echo "libx264 enabled ${libx264-no}" @@ -3067,7 +3156,7 @@ echo for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do echo "Enabled ${type}s:" eval list=\$$(toupper $type)_LIST - print_enabled '_*' $list | sort | pr -3 -t + print_enabled '_*' $list | sort | pr -r -3 -t echo done @@ -3092,7 +3181,6 @@ if enabled source_path_used; then doc libavcodec libavcodec/$arch - libavcore libavdevice libavfilter libavfilter/$arch @@ -3112,7 +3200,6 @@ if enabled source_path_used; then doc/texi2pod.pl libavcodec/Makefile libavcodec/${arch}/Makefile - libavcore/Makefile libavdevice/Makefile libavfilter/Makefile libavfilter/${arch}/Makefile @@ -3125,15 +3212,13 @@ if enabled source_path_used; then map 'test -f "$source_path/$v" && $ln_s "$source_path/$v" $v' $FILES fi -enabled stripping || strip="echo skipping strip" - config_files="$TMPH config.mak" cat > config.mak < $TMPH <> $TMPH - echo "#define av_always_inline" >> $TMPH + if enabled small; then + echo "#define av_always_inline inline" >> $TMPH + else + echo "#define av_always_inline av_unused" >> $TMPH + fi fi if enabled yasm; then @@ -3274,8 +3360,8 @@ LAVFI_TESTS=$(print_enabled -n _test $LAVFI_TESTS) SEEK_TESTS=$(print_enabled -n _test $SEEK_TESTS) EOF -echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH -echo "endif # FFMPEG_CONFIG_MAK" >> config.mak +echo "#endif /* LIBAV_CONFIG_H */" >> $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 @@ -3339,11 +3425,10 @@ Cflags: -I\${includedir} EOF } -pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" -pkgconfig_generate libavcore "FFmpeg multimedia shared core utilities library" "$LIBAVCORE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION" -pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavcore = $LIBAVCORE_VERSION" -pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" -pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" -pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "libavcore = $LIBAVCORE_VERSION" -pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION" -pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate libavutil "Libav utility library" "$LIBAVUTIL_VERSION" +pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" +pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" +pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" +pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" +pkgconfig_generate libpostproc "Libav post processing library" "$LIBPOSTPROC_VERSION" +pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"