X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=1408689d3b5913046449cf2f15e7d61feb77532f;hb=046f75a970701b4c947d38bfd2186dcc5f2ddae2;hp=411af5e0b100a72b081c1a254a58bf011a313b44;hpb=ab0742d2f34d70415620441b7ed7da2f03a0c14f;p=ffmpeg diff --git a/configure b/configure index 411af5e0b10..1408689d3b5 100755 --- a/configure +++ b/configure @@ -86,6 +86,7 @@ Standard options: --shlibdir=DIR install shared libs in DIR [PREFIX/lib] --incdir=DIR install includes in DIR [PREFIX/include] --mandir=DIR install man page in DIR [PREFIX/share/man] + --enable-rpath use rpath when linking programs [USE WITH CARE] Licensing options: --enable-gpl allow use of GPL code, the resulting libs @@ -129,6 +130,7 @@ Component options: --disable-mdct disable MDCT code --disable-rdft disable RDFT code --disable-fft disable FFT code + --disable-faan disable floating point AAN (I)DCT code Hardware accelerators: --enable-dxva2 enable DXVA2 code @@ -208,10 +210,13 @@ External library support: --enable-libx264 enable H.264 encoding via x264 [no] --enable-libx265 enable HEVC encoding via x265 [no] --enable-libxavs enable AVS encoding via xavs [no] + --enable-libxcb enable X11 grabbing using XCB [no] + --enable-libxcb-shm enable X11 grabbing shm communication [auto] + --enable-libxcb-xfixes enable X11 grabbing mouse rendering [auto] --enable-libxvid enable Xvid encoding via xvidcore, native MPEG-4/Xvid encoder exists [no] --enable-openssl enable openssl [no] - --enable-x11grab enable X11 grabbing [no] + --enable-x11grab enable X11 grabbing (legacy) [no] --enable-zlib enable zlib [autodetect] Toolchain options: @@ -1065,7 +1070,7 @@ check_host_cpp(){ log check_host_cpp "$@" cat > $TMPC log_file $TMPC - check_cmd $host_cc $HOSTCPPFLAGS $HOSTCFLAGS "$@" $(hostcc_e $TMPO) $TMPC + check_cmd $host_cc $host_cppflags $host_cflags "$@" $(hostcc_e $TMPO) $TMPC } check_host_cppflags(){ @@ -1168,6 +1173,9 @@ EXTERNAL_LIBRARY_LIST=" libx264 libx265 libxavs + libxcb + libxcb_shm + libxcb_xfixes libxvid openssl x11grab @@ -1219,6 +1227,7 @@ SUBSYSTEM_LIST=" dct doc error_resilience + faan fft lsp lzo @@ -1431,6 +1440,7 @@ MATH_FUNCS=" SYSTEM_FUNCS=" aligned_malloc + clock_gettime closesocket CommandLineToArgvW CoTaskMemFree @@ -1449,6 +1459,7 @@ SYSTEM_FUNCS=" getservbyport GetSystemTimeAsFileTime gettimeofday + gmtime_r inet_aton isatty jack_port_get_latency_range @@ -1494,6 +1505,7 @@ TOOLCHAIN_FEATURES=" " TYPES_LIST=" + CONDITION_VARIABLE_Ptr socklen_t struct_addrinfo struct_group_source_req @@ -1530,6 +1542,7 @@ HAVE_LIST=" libdc1394_1 libdc1394_2 sdl + section_data_rel_ro threads vdpau_x11 xlib @@ -1545,6 +1558,8 @@ CONFIG_EXTRA=" bswapdsp cabac dvprofile + faandct + faanidct fdctdsp gcrypt golomb @@ -1582,6 +1597,7 @@ CONFIG_EXTRA=" tpeldsp videodsp vp3dsp + wma_freqs " CMDLINE_SELECT=" @@ -1596,6 +1612,7 @@ CMDLINE_SELECT=" logging lto optimizations + rpath " PATHS_LIST=" @@ -1721,6 +1738,8 @@ threads_if_any="$THREADS_LIST" # subsystems dct_select="rdft" error_resilience_select="me_cmp" +faandct_deps="faan fdctdsp" +faanidct_deps="faan idctdsp" intrax8_select="error_resilience" mdct_select="fft" rdft_select="fft" @@ -1753,8 +1772,8 @@ atrac1_decoder_select="mdct sinewin" atrac3_decoder_select="mdct" atrac3p_decoder_select="mdct sinewin" bink_decoder_select="blockdsp hpeldsp" -binkaudio_dct_decoder_select="mdct rdft dct sinewin" -binkaudio_rdft_decoder_select="mdct rdft sinewin" +binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs" +binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs" cavs_decoder_select="blockdsp golomb h264chroma idctdsp qpeldsp videodsp" cllc_decoder_select="bswapdsp" comfortnoise_encoder_select="lpc" @@ -1898,11 +1917,11 @@ vp7_decoder_select="h264pred videodsp" vp8_decoder_select="h264pred videodsp" vp9_decoder_select="videodsp" webp_decoder_select="vp8_decoder" -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" +wmapro_decoder_select="mdct sinewin wma_freqs" +wmav1_decoder_select="mdct sinewin wma_freqs" +wmav1_encoder_select="mdct sinewin wma_freqs" +wmav2_decoder_select="mdct sinewin wma_freqs" +wmav2_encoder_select="mdct sinewin wma_freqs" wmavoice_decoder_select="lsp rdft dct mdct sinewin" wmv1_decoder_select="h263_decoder" wmv1_encoder_select="h263_encoder" @@ -2021,6 +2040,7 @@ avi_muxer_select="riffenc" avisynth_demuxer_deps="avisynth" avisynth_demuxer_select="riffdec" caf_demuxer_select="riffdec" +dash_muxer_select="mp4_muxer" dirac_demuxer_select="dirac_parser" dv_demuxer_select="dvprofile" dv_muxer_select="dvprofile" @@ -2047,7 +2067,9 @@ mpegtsraw_demuxer_select="mpegts_demuxer" mxf_d10_muxer_select="mxf_muxer" nut_muxer_select="riffenc" nuv_demuxer_select="riffdec" +oga_muxer_select="ogg_muxer" ogg_demuxer_select="golomb" +opus_muxer_select="ogg_muxer" psp_muxer_select="mov_muxer" rtp_demuxer_select="sdp_demuxer" rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer" @@ -2058,6 +2080,7 @@ sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain" sdp_demuxer_select="rtpdec" smoothstreaming_muxer_select="ismv_muxer" spdif_muxer_select="aac_parser" +spx_muxer_select="ogg_muxer" tak_demuxer_select="tak_parser" tg2_muxer_select="mov_muxer" tgp_muxer_select="mov_muxer" @@ -2087,7 +2110,8 @@ sndio_outdev_deps="sndio_h" v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines" vfwcap_indev_extralibs="-lavicap32" -x11grab_indev_deps="x11grab XShmCreateImage" +x11grab_indev_deps="x11grab" +x11grab_xcb_indev_deps="libxcb" # protocols ffrtmpcrypt_protocol_deps="!librtmp_protocol" @@ -2214,13 +2238,14 @@ enable $EXAMPLE_LIST $LIBRARY_LIST $PROGRAM_LIST enable asm enable debug enable doc +enable faan faandct faanidct enable optimizations enable safe_bitstream_reader enable static enable swscale_alpha # By default, enable only those hwaccels that have no external dependencies. -enable dxva2 vdpau +enable dxva2 vda vdpau # build settings SHFLAGS='-shared -Wl,-soname,$$(@F)' @@ -2539,8 +2564,9 @@ case "$toolchain" in add_ldflags -fprofile-arcs -ftest-coverage ;; hardened) - add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all - add_ldflags -Wl,-z,relro -Wl,-z,now + add_cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + add_cflags -fno-strict-overflow -fstack-protector-all + add_ldflags -Wl,-z,relro -Wl,-z,now ;; ?*) die "Unknown toolchain $toolchain" @@ -2614,6 +2640,17 @@ EOF die "Sanity test failed." fi +armasm_flags(){ + for flag; do + case $flag in + # Filter out MSVC cl.exe options from cflags that shouldn't + # be passed to gas-preprocessor + -M[TD]*) ;; + *) echo $flag ;; + esac + done +} + ccc_flags(){ for flag; do case $flag in @@ -2665,6 +2702,7 @@ msvc_common_flags(){ -lavifil32) echo vfw32.lib ;; -lavicap32) echo vfw32.lib user32.lib ;; -l*) echo ${flag#-l}.lib ;; + -L*) echo -libpath:${flag#-L} ;; *) echo $flag ;; esac done @@ -2677,7 +2715,7 @@ msvc_flags(){ -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ - -wd4273 ;; + -wd4273 -wd4701 ;; esac done } @@ -2886,6 +2924,7 @@ probe_cc(){ _ident=$($_cc | head -n1) # 4509: "This form of conditional instruction is deprecated" _flags="-nologo -ignore 4509" + _flags_filter=armasm_flags elif $_cc 2>&1 | grep -q Microsoft; then _type=msvc _ident=$($cc 2>&1 | head -n1) @@ -3269,6 +3308,7 @@ elif enabled x86; then case $cpu in i[345]86|pentium) cpuflags="-march=$cpu" + disable i686 disable mmx ;; # targets that do NOT support nopl and conditional mov (cmov) @@ -3376,6 +3416,7 @@ case $target_os in ;; android) disable symver + enable section_data_rel_ro SLIB_INSTALL_NAME='$(SLIBNAME)' SLIB_INSTALL_LINKS= # soname not set on purpose @@ -3510,6 +3551,7 @@ case $target_os in ;; linux) enable dv1394 + enable section_data_rel_ro ;; irix*) target_os=irix @@ -3629,6 +3671,9 @@ probe_libc(){ elif check_${pfx}cpp_condition sys/brand.h "defined LABELED_BRAND_NAME"; then eval ${pfx}libc_type=solaris add_${pfx}cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 + else + eval ${pfx}libc_type=default + add_${pfx}cppflags -D_DEFAULT_SOURCE fi } @@ -4021,12 +4066,16 @@ check_func_headers malloc.h _aligned_malloc && enable aligned_malloc check_func ${malloc_prefix}memalign && enable memalign check_func ${malloc_prefix}posix_memalign && enable posix_memalign +check_cpp_condition unistd.h "defined(_POSIX_MONOTONIC_CLOCK)" && + check_func_headers time.h clock_gettime || { check_func_headers time.h clock_gettime -lrt && add_extralibs -lrt && LIBRT="-lrt"; } + check_func fcntl check_func fork check_func gethrtime check_func getopt check_func getrusage check_func gettimeofday +check_func gmtime_r check_func isatty check_func localtime_r check_func mach_absolute_time @@ -4034,7 +4083,7 @@ check_func mkstemp check_func mmap check_func mprotect # Solaris has nanosleep in -lrt, OpenSolaris no longer needs that -check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; } +check_func_headers time.h nanosleep || { check_func_headers time.h nanosleep -lrt && add_extralibs -lrt; } check_func sched_getaffinity check_func setrlimit check_func strerror_r @@ -4054,6 +4103,7 @@ check_func_headers windows.h MapViewOfFile check_func_headers windows.h SetConsoleTextAttribute check_func_headers windows.h Sleep check_func_headers windows.h VirtualAlloc +check_struct windows.h "CONDITION_VARIABLE" Ptr check_header direct.h check_header dlfcn.h @@ -4235,10 +4285,30 @@ fi check_lib X11/Xlib.h XOpenDisplay -lX11 && enable xlib -enabled x11grab && -require Xext X11/extensions/XShm.h XShmCreateImage -lXext && -require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes && -{ enabled xlib || die "ERROR: Xlib not found"; } +if enabled libxcb || enabled x11grab && ! disabled libxcb; then + check_pkg_config xcb xcb/xcb.h xcb_connect || { + enabled libxcb && die "ERROR: libxcb not found"; + } && disable x11grab && enable libxcb + + disabled libxcb_shm || + check_pkg_config xcb-shm xcb/shm.h xcb_shm_attach || { + enabled libxcb_shm && die "ERROR: libxcb_shm not found"; + } && check_header sys/shm.h && enable libxcb_shm + + disabled libxcb_xfixes || + check_pkg_config xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cursor_image || { + enabled libxcb_xfixes && die "ERROR: libxcb_xfixes not found"; + } && enable libxcb_xfixes + + add_cflags "$xcb_event_cflags $xcb_shm_cflags $xcb_xfixes_cflags" + add_extralibs "$xcb_event_libs $xcb_shm_libs $xcb_xfixes_libs" +fi + +if enabled x11grab; then + enabled xlib || die "ERROR: Xlib not found" + require Xext X11/extensions/XShm.h XShmCreateImage -lXext + require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes +fi enabled vdpau && check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || @@ -4278,6 +4348,7 @@ check_disable_warning -Wno-pointer-sign # add some linker flags check_ldflags -Wl,--warn-common check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample +enabled rpath && add_ldexeflags -Wl,-rpath,$libdir test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic # add some strip flags @@ -4381,6 +4452,7 @@ elif enabled gcc; then check_cflags -Werror=return-type check_cflags -Werror=declaration-after-statement check_cflags -Werror=vla + check_cflags -Werror=format-security enabled extra_warnings || check_disable_warning -Wno-maybe-uninitialized elif enabled llvm_gcc; then check_cflags -mllvm -stack-alignment=16 @@ -4457,7 +4529,7 @@ enabled_all dxva2 CoTaskMemFree && enable dxva2_lib ! enabled_any memalign posix_memalign aligned_malloc && - enabled $simd_align_16 && enable memalign_hack + enabled simd_align_16 && enable memalign_hack map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST @@ -4803,7 +4875,7 @@ Cflags: -I\${includedir} EOF } -pkgconfig_generate libavutil "Libav utility library" "$LIBAVUTIL_VERSION" "$LIBM" +pkgconfig_generate libavutil "Libav utility library" "$LIBAVUTIL_VERSION" "$LIBRT $LIBM" pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs"