diff options
author | Diego Biurrun <diego@biurrun.de> | 2017-10-17 03:00:50 +0200 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2018-03-07 13:55:07 +0100 |
commit | 9c37d765ef28b027414f86b0088b0c282a3c46d8 (patch) | |
tree | 587ead65c1cdb3a96a8ffe03f53bef05f61283f2 /configure | |
parent | 83fef16b6a8dbbcbd80d159ba3ebe818dbbb2776 (diff) | |
download | ffmpeg-9c37d765ef28b027414f86b0088b0c282a3c46d8.tar.gz |
configure: Add check_cc/require_cc helper functions to simplify some expressions
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 71 |
1 files changed, 34 insertions, 37 deletions
@@ -1129,6 +1129,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" @@ -1137,6 +1145,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" @@ -4172,18 +4187,12 @@ extern_prefix=${sym%%ff_extern*} ! disabled inline_asm && check_inline_asm inline_asm '"" ::' for restrict_keyword in restrict __restrict__ __restrict ""; do - test_cc <<EOF && break -void foo(char * $restrict_keyword p); -EOF + test_code cc "" "char * $restrict_keyword p" && break done -test_cc <<EOF && enable pragma_deprecated -void foo(void) { _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") } -EOF +check_cc pragma_deprecated "" '_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")' -test_cc <<EOF || die "endian test failed" -unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E'; -EOF +require_cc "endian test" "" "unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E'" od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian check_gas() { @@ -4334,19 +4343,17 @@ elif enabled ppc; then check_cflags -maltivec -mabi=altivec # check if our compiler supports Motorola AltiVec C API - test_code cc altivec.h "vector signed int v1 = (vector signed int) { 0 }; - vector signed int v2 = (vector signed int) { 1 }; - v1 = vec_add(v1, v2);" || - disable altivec + check_cc altivec altivec.h "vector signed int v1 = (vector signed int) { 0 }; + vector signed int v2 = (vector signed int) { 1 }; + v1 = vec_add(v1, v2);" enabled altivec || warn "Altivec disabled, possibly missing --cpu flag" fi if enabled vsx; then check_cflags -mvsx && - test_code cc altivec.h "int v[4] = { 0 }; - vector signed int v1 = vec_vsx_ld(0, v);" || - disable vsx + check_cc vsx altivec.h "int v[4] = { 0 }; + vector signed int v1 = vec_vsx_ld(0, v);" fi if enabled power8; then @@ -4427,7 +4434,7 @@ EOF fi -test_code cc arm_neon.h "int16x8_t test = vdupq_n_s16(0)" && enable intrinsics_neon +check_cc intrinsics_neon arm_neon.h "int16x8_t test = vdupq_n_s16(0)" check_ldflags -Wl,--as-needed @@ -4761,15 +4768,11 @@ 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)" && @@ -4821,9 +4824,7 @@ check_disable_warning_headers -Wno-unused-variable check_objcflags -fobjc-arc && enable objc_arc -test_cc <<EOF && enable blocks_extension -void (^block)(void); -EOF +check_cc blocks_extension "" "void (^block)(void)" # add some linker flags check_ldflags -Wl,--warn-common @@ -4877,14 +4878,10 @@ if enabled proper_dce; then if test_ldflags -Wl,${version_script},$TMPV; then append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver' quotes='""' - test_cc <<EOF && enable symver_asm_label -void ff_foo(void) __asm__ ("av_foo@VERSION"); -void ff_foo(void) { ${inline_asm+__asm__($quotes);} } -EOF - test_cc <<EOF && enable symver_gnu_asm -__asm__(".symver ff_foo,av_foo@VERSION"); -void ff_foo(void) {} -EOF + check_cc symver_asm_label "" "void ff_foo(void) __asm__ ("av_foo@VERSION"); + void ff_foo(void) { ${inline_asm+__asm__($quotes);} }" + check_cc symver_gnu_asm "" "__asm__(".symver ff_foo,av_foo@VERSION"); + void ff_foo(void) {}" fi fi |