X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=5e350983dd81414fd130116437f361d63573f68b;hb=18dc1ff0fb4572b1d50a44905aa1e76bc3bbb0ad;hp=784caf85dfd99d7e96f3ec0c3a0c5020aedfd204;hpb=a5e011c8dcbf6968cc60f883d33382ba46147e90;p=ffmpeg diff --git a/configure b/configure index 784caf85dfd..5e350983dd8 100755 --- a/configure +++ b/configure @@ -850,6 +850,14 @@ test_ld(){ test_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs } +check_ld(){ + log check_ld "$@" + name=$1 + shift + disable $name + test_ld $@ && enable $name +} + print_include(){ hdr=$1 test "${hdr%.h}" = "${hdr}" && @@ -998,6 +1006,14 @@ test_cpp_condition(){ EOF } +check_cpp_condition(){ + log check_cpp_condition "$@" + name=$1 + shift 1 + disable $name + test_cpp_condition "$@" && enable $name +} + test_cflags_cpp(){ log test_cflags_cpp "$@" flags=$1 @@ -1121,6 +1137,14 @@ check_compile_assert(){ test_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name" } +check_cc(){ + log check_cc "$@" + name=$1 + shift + disable "$name" + test_code cc "$@" && enable "$name" +} + require(){ log require "$@" name_version="$1" @@ -1129,6 +1153,13 @@ require(){ check_lib $name "$@" || die "ERROR: $name_version not found" } +require_cc(){ + log require_cc "$@" + name="$1" + shift + test_code cc "$@" || die "ERROR: $name failed" +} + require_header(){ log require_header "$@" headers="$1" @@ -1197,6 +1228,14 @@ test_host_cpp_condition(){ EOF } +check_host_cpp_condition(){ + log check_host_cpp_condition "$@" + name=$1 + shift 1 + disable $name + test_host_cpp_condition "$@" && enable $name +} + cp_if_changed(){ cmp -s "$1" "$2" && { test "$quiet" != "yes" && echo "$2 is unchanged"; } && return mkdir -p "$(dirname $2)" @@ -4156,18 +4195,12 @@ extern_prefix=${sym%%ff_extern*} ! disabled inline_asm && check_inline_asm inline_asm '"" ::' for restrict_keyword in restrict __restrict__ __restrict ""; do - test_cc <= 30"; then - enable vfp_args + if check_cpp_condition vfp_args stddef.h "defined __ARM_PCS_VFP"; then + : + elif check_cpp_condition vfp_args stddef.h "defined _M_ARM_FP && _M_ARM_FP >= 30"; then + : elif ! test_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__" && [ $target_os != darwin ]; then case "${cross_prefix:-$cc}" in - *hardfloat*) enable vfp_args; fpabi=vfp ;; - *) test_ld <= 118" && - { test_cpp_condition x264.h "X264_MPEG2" && - enable libx262; } + check_cpp_condition libx262 x264.h "X264_MPEG2" enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get && require_cpp_condition x265.h "X265_BUILD >= 57" enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode -lxavs @@ -4696,7 +4726,7 @@ check_lib user32 "windows.h winuser.h" GetShellWindow -luser32 check_lib vfw32 "windows.h vfw.h" capCreateCaptureWindow -lvfw32 # check that WM_CAP_DRIVER_CONNECT is defined to the proper value # w32api 3.12 had it defined wrong -test_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines +check_cpp_condition vfwcap_defines vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" # check for ioctl_meteor.h, ioctl_bt848.h and alternatives check_header "dev/bktr/ioctl_meteor.h dev/bktr/ioctl_bt848.h" || @@ -4746,23 +4776,18 @@ EOF enabled vaapi && require vaapi va/va.h vaInitialize -lva -enabled vaapi && - test_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" || - disable vaapi - -enabled vaapi && - check_lib vaapi_drm "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm - -enabled vaapi && - check_lib vaapi_x11 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 -lX11 +if enabled vaapi; then + require_cc vaapi "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" + check_lib vaapi_drm "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm + check_lib vaapi_x11 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 -lX11 +fi enabled vaapi && test_cpp_condition "va/va.h" "VA_CHECK_VERSION(1, 0, 0)" && enable vaapi_1 enabled vdpau && - test_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || - disable vdpau + check_cpp_condition vdpau vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" enabled vdpau && check_lib vdpau_x11 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau -lX11 @@ -4807,9 +4832,7 @@ check_disable_warning_headers -Wno-unused-variable check_objcflags -fobjc-arc && enable objc_arc -test_cc <= 12" || disable log2 + check_cpp_condition log2 crtversion.h "_VC_CRT_MAJOR_VERSION >= 12" # The CRT headers contain __declspec(restrict) in a few places, but if redefining # restrict, this might break. MSVC 2010 and 2012 fail with __declspec(__restrict) # (as it ends up if the restrict redefine is done before including stdlib.h), while