configure: Use test_ prefix for helper functions that do not set variables

pull/283/head
Diego Biurrun 7 years ago
parent 8c893aa3cd
commit 49804dc2ba
  1. 263
      configure

263
configure vendored

@ -758,7 +758,7 @@ add_compat(){
map 'add_cppflags -D$v' "$@"
}
check_cmd(){
test_cmd(){
log "$@"
"$@" >> $logfile 2>&1
}
@ -771,36 +771,36 @@ cc_e(){
eval printf '%s\\n' $CC_E
}
check_cc(){
log check_cc "$@"
test_cc(){
log test_cc "$@"
cat > $TMPC
log_file $TMPC
check_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC
test_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC
}
check_objcc(){
log check_objcc "$@"
test_objcc(){
log test_objcc "$@"
cat > $TMPC
log_file $TMPC
check_cmd $objcc $CPPFLAGS $CFLAGS $OBJCFLAGS "$@" $OBJCC_C $(cc_o $TMPO) $TMPC
test_cmd $objcc $CPPFLAGS $CFLAGS $OBJCFLAGS "$@" $OBJCC_C $(cc_o $TMPO) $TMPC
}
check_cpp(){
log check_cpp "$@"
test_cpp(){
log test_cpp "$@"
cat > $TMPC
log_file $TMPC
check_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC
test_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC
}
as_o(){
eval printf '%s\\n' $AS_O
}
check_as(){
log check_as "$@"
test_as(){
log test_as "$@"
cat > $TMPS
log_file $TMPS
check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS
test_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS
}
check_inline_asm(){
@ -809,7 +809,7 @@ check_inline_asm(){
code="$2"
shift 2
disable $name
check_cc "$@" <<EOF && enable $name
test_cc "$@" <<EOF && enable $name
void foo(void){ __asm__ volatile($code); }
EOF
}
@ -817,29 +817,29 @@ EOF
check_insn(){
log check_insn "$@"
check_inline_asm ${1}_inline "$2"
echo "$2" | check_as && enable ${1}_external || disable ${1}_external
echo "$2" | test_as && enable ${1}_external || disable ${1}_external
}
check_x86asm(){
log check_x86asm "$@"
test_x86asm(){
log test_x86asm "$@"
echo "$1" > $TMPS
log_file $TMPS
shift 1
check_cmd $x86asmexe $X86ASMFLAGS "$@" -o $TMPO $TMPS
test_cmd $x86asmexe $X86ASMFLAGS "$@" -o $TMPO $TMPS
}
ld_o(){
eval printf '%s\\n' $LD_O
}
check_ld(){
log check_ld "$@"
test_ld(){
log test_ld "$@"
flags=$(filter_out '-l*' "$@")
libs=$(filter '-l*' "$@")
check_cc $($cflags_filter $flags) || return
test_cc $($cflags_filter $flags) || return
flags=$($ldflags_filter $flags)
libs=$($ldflags_filter $libs)
check_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs
test_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs
}
print_include(){
@ -849,8 +849,8 @@ print_include(){
echo "#include <$hdr>"
}
check_code(){
log check_code "$@"
test_code(){
log test_code "$@"
check=$1
headers=$2
code=$3
@ -860,12 +860,12 @@ check_code(){
print_include $hdr
done
echo "int main(void) { $code; return 0; }"
} | check_$check "$@"
} | test_$check "$@"
}
check_cppflags(){
log check_cppflags "$@"
check_cpp "$@" <<EOF && append CPPFLAGS "$@"
test_cpp "$@" <<EOF && add_cppflags "$@"
#include <stdlib.h>;
EOF
}
@ -873,7 +873,7 @@ EOF
test_cflags(){
log test_cflags "$@"
set -- $($cflags_filter "$@")
check_cc "$@" <<EOF
test_cc "$@" <<EOF
int x;
EOF
}
@ -886,7 +886,7 @@ check_cflags(){
test_objcflags(){
log test_objcflags "$@"
set -- $($objcflags_filter "$@")
check_objcc "$@" <<EOF
test_objcc "$@" <<EOF
int x;
EOF
}
@ -899,7 +899,7 @@ check_objcflags(){
test_ldflags(){
log test_ldflags "$@"
set -- $($ldflags_filter "$@")
check_ld "$@" <<EOF
test_ld "$@" <<EOF
int main(void){ return 0; }
EOF
}
@ -911,11 +911,11 @@ check_ldflags(){
test_stripflags(){
log test_stripflags "$@"
# call check_cc to get a fresh TMPO
check_cc <<EOF
# call test_cc to get a fresh TMPO
test_cc <<EOF
int main(void) { return 0; }
EOF
check_cmd $strip $STRIPFLAGS "$@" $TMPO
test_cmd $strip $STRIPFLAGS "$@" $TMPO
}
check_stripflags(){
@ -933,7 +933,7 @@ check_header(){
print_include $hdr
done
echo "int x;"
} | check_cpp "$@" && enable_sanitized $headers
} | test_cpp "$@" && enable_sanitized $headers
}
check_func(){
@ -941,7 +941,7 @@ check_func(){
func=$1
shift
disable $func
check_ld "$@" <<EOF && enable $func
test_ld "$@" <<EOF && enable $func
extern int $func();
int main(void){ $func(); }
EOF
@ -954,7 +954,7 @@ check_mathfunc(){
shift 2
test $narg = 2 && args="f, g" || args="f"
disable $func
check_ld "$@" <<EOF && enable $func
test_ld "$@" <<EOF && enable $func
#include <math.h>
float foo(float f, float g) { return $func($args); }
int main(void){ return 0; }
@ -974,15 +974,15 @@ check_func_headers(){
echo "long check_$func(void) { return (long) $func; }"
done
echo "int main(void) { return 0; }"
} | check_ld "$@" && enable $funcs && enable_sanitized $headers
} | test_ld "$@" && enable $funcs && enable_sanitized $headers
}
check_cpp_condition(){
log check_cpp_condition "$@"
test_cpp_condition(){
log test_cpp_condition "$@"
header=$1
condition=$2
shift 2
check_cpp "$@" <<EOF
test_cpp "$@" <<EOF
#include <$header>
#if !($condition)
#error "unsatisfied condition: $condition"
@ -996,7 +996,7 @@ test_cflags_cpp(){
condition=$2
shift 2
set -- $($cflags_filter "$flags")
check_cpp "$@" <<EOF
test_cpp "$@" <<EOF
#if !($condition)
#error "unsatisfied condition: $condition"
#endif
@ -1023,7 +1023,7 @@ test_pkg_config(){
funcs="$4"
shift 4
disable $name
check_cmd $pkg_config --exists --print-errors $pkg_version || return
test_cmd $pkg_config --exists --print-errors $pkg_version || return
pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg)
pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg)
check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" &&
@ -1039,8 +1039,9 @@ check_pkg_config(){
eval add_cflags \$${name}_cflags
}
check_exec(){
check_ld "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; }
test_exec(){
log test_exec "$@"
test_ld "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; }
}
check_exec_crash(){
@ -1053,7 +1054,7 @@ check_exec_crash(){
# can redirect the "Terminated" message from the shell. SIGBUS
# is not defined by standard C so it is used conditionally.
(check_exec "$@") >> $logfile 2>&1 <<EOF
(test_exec "$@") >> $logfile 2>&1 <<EOF
#include <signal.h>
static void sighandler(int sig){
raise(SIGTERM);
@ -1080,7 +1081,7 @@ check_type(){
type=$2
shift 2
disable_sanitized "$type"
check_code cc "$headers" "$type v" "$@" && enable_sanitized "$type"
test_code cc "$headers" "$type v" "$@" && enable_sanitized "$type"
}
check_struct(){
@ -1090,7 +1091,7 @@ check_struct(){
member=$3
shift 3
disable_sanitized "${struct}_${member}"
check_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" &&
test_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" &&
enable_sanitized "${struct}_${member}"
}
@ -1099,7 +1100,7 @@ check_builtin(){
name=$1
shift
disable "$name"
check_code ld "$@" && enable "$name"
test_code ld "$@" && enable "$name"
}
check_compile_assert(){
@ -1109,7 +1110,7 @@ check_compile_assert(){
condition=$3
shift 3
disable "$name"
check_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name"
test_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name"
}
require(){
@ -1129,7 +1130,7 @@ require_header(){
require_cpp_condition(){
log require_cpp_condition "$@"
condition="$2"
check_cpp_condition "$@" || die "ERROR: $condition not satisfied"
test_cpp_condition "$@" || die "ERROR: $condition not satisfied"
}
require_pkg_config(){
@ -1146,23 +1147,23 @@ hostcc_o(){
eval printf '%s\\n' $HOSTCC_O
}
check_host_cc(){
log check_host_cc "$@"
test_host_cc(){
log test_host_cc "$@"
cat > $TMPC
log_file $TMPC
check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC
test_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC
}
check_host_cpp(){
log check_host_cpp "$@"
test_host_cpp(){
log test_host_cpp "$@"
cat > $TMPC
log_file $TMPC
check_cmd $host_cc $host_cppflags $host_cflags "$@" $(hostcc_e $TMPO) $TMPC
test_cmd $host_cc $host_cppflags $host_cflags "$@" $(hostcc_e $TMPO) $TMPC
}
check_host_cppflags(){
log check_host_cppflags "$@"
check_host_cpp "$@" <<EOF && append host_cppflags "$@"
test_host_cpp "$@" <<EOF && append host_cppflags "$@"
#include <stdlib.h>;
EOF
}
@ -1170,17 +1171,17 @@ EOF
check_host_cflags(){
log check_host_cflags "$@"
set -- $($host_cflags_filter "$@")
check_host_cc "$@" <<EOF && append host_cflags "$@"
test_host_cc "$@" <<EOF && append host_cflags "$@"
int x;
EOF
}
check_host_cpp_condition(){
log check_host_cpp_condition "$@"
test_host_cpp_condition(){
log test_host_cpp_condition "$@"
header=$1
condition=$2
shift 2
check_host_cpp "$@" <<EOF
test_host_cpp "$@" <<EOF
#include <$header>
#if !($condition)
#error "unsatisfied condition: $condition"
@ -3044,7 +3045,7 @@ HOSTEXESUF=$(exesuf $host_os)
: ${TMPDIR:=$TMP}
: ${TMPDIR:=/tmp}
if ! check_cmd mktemp -u XXXXXX; then
if ! test_cmd mktemp -u XXXXXX; then
# simple replacement for missing mktemp
# NOT SAFE FOR GENERAL USE
mktemp(){
@ -3542,7 +3543,7 @@ elif enabled alpha; then
elif enabled arm; then
check_arm_arch() {
check_cpp_condition stddef.h \
test_cpp_condition stddef.h \
"defined __ARM_ARCH_${1}__ || defined __TARGET_ARCH_${2:-$1}" \
$cpuflags
}
@ -3735,7 +3736,7 @@ if [ "$cpu" != generic ]; then
fi
# compiler sanity check
check_exec <<EOF
test_exec <<EOF
int main(void){ return 0; }
EOF
if test "$?" != 0; then
@ -3751,7 +3752,7 @@ add_cppflags -D_ISOC99_SOURCE
# some compilers silently accept -std=c11, so we also need to check that the
# version macro is defined properly
check_cpp_condition stdlib.h "__STDC_VERSION__ >= 201112L" -std=c11 &&
test_cpp_condition stdlib.h "__STDC_VERSION__ >= 201112L" -std=c11 &&
add_cflags -std=c11 ||
check_cflags -std=c99
@ -3767,7 +3768,7 @@ check_64bit(){
arch32=$1
arch64=$2
expr=${3:-'sizeof(void *) > 4'}
check_code cc "" "int test[2*($expr) - 1]" &&
test_code cc "" "int test[2*($expr) - 1]" &&
subarch=$arch64 || subarch=$arch32
enable $subarch
}
@ -4023,38 +4024,38 @@ probe_libc(){
pfx=$1
pfx_no_=${pfx%_}
# uclibc defines __GLIBC__, so it needs to be checked before glibc.
if check_${pfx}cpp_condition features.h "defined __UCLIBC__"; then
if test_${pfx}cpp_condition features.h "defined __UCLIBC__"; then
eval ${pfx}libc_type=uclibc
add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
elif check_${pfx}cpp_condition features.h "defined __GLIBC__"; then
elif test_${pfx}cpp_condition features.h "defined __GLIBC__"; then
eval ${pfx}libc_type=glibc
add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
# MinGW headers can be installed on Cygwin, so check for newlib first.
elif check_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then
elif test_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then
eval ${pfx}libc_type=newlib
add_${pfx}cppflags -U__STRICT_ANSI__ -D_XOPEN_SOURCE=600
# MinGW64 is backwards compatible with MinGW32, so check for it first.
elif check_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then
elif test_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then
eval ${pfx}libc_type=mingw64
add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1
eval test \$${pfx_no_}cc_type = "gcc" &&
add_${pfx}cppflags -D__printf__=__gnu_printf__
elif check_${pfx}cpp_condition _mingw.h "defined __MINGW_VERSION" ||
check_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then
elif test_${pfx}cpp_condition _mingw.h "defined __MINGW_VERSION" ||
test_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then
eval ${pfx}libc_type=mingw32
check_${pfx}cpp_condition _mingw.h "__MINGW32_MAJOR_VERSION > 3 || \
test_${pfx}cpp_condition _mingw.h "__MINGW32_MAJOR_VERSION > 3 || \
(__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
die "ERROR: MinGW32 runtime version must be >= 3.15."
add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1
check_${pfx}cpp_condition _mingw.h "__MSVCRT_VERSION__ < 0x0700" &&
test_${pfx}cpp_condition _mingw.h "__MSVCRT_VERSION__ < 0x0700" &&
add_${pfx}cppflags -D__MSVCRT_VERSION__=0x0700
check_${pfx}cpp_condition windows.h "defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0502" &&
test_${pfx}cpp_condition windows.h "defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0502" &&
add_${pfx}cppflags -D_WIN32_WINNT=0x0502
eval test \$${pfx_no_}cc_type = "gcc" &&
add_${pfx}cppflags -D__printf__=__gnu_printf__
elif check_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then
elif test_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then
eval ${pfx}libc_type=msvcrt
if check_${pfx}cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION < 14"; then
if test_${pfx}cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION < 14"; then
if [ "$pfx" = host_ ]; then
add_host_cppflags -Dsnprintf=_snprintf
else
@ -4075,8 +4076,8 @@ probe_libc(){
# family. For these cases, configure is free to use any functions
# found in the SDK headers by default. (Alternatively, we could force
# _WIN32_WINNT to 0x0602 in that case.)
check_${pfx}cpp_condition stdlib.h "defined(_WIN32_WINNT)" ||
{ check_${pfx}cpp <<EOF && add_${pfx}cppflags -D_WIN32_WINNT=0x0502; }
test_${pfx}cpp_condition stdlib.h "defined(_WIN32_WINNT)" ||
{ test_${pfx}cpp <<EOF && add_${pfx}cppflags -D_WIN32_WINNT=0x0502; }
#ifdef WINAPI_FAMILY
#include <winapifamily.h>
#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
@ -4087,11 +4088,11 @@ EOF
if [ "$pfx" = "" ]; then
check_func strtoll || add_cflags -Dstrtoll=_strtoi64
fi
elif check_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then
elif test_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then
eval ${pfx}libc_type=klibc
elif check_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then
elif test_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then
eval ${pfx}libc_type=bionic
elif check_${pfx}cpp_condition sys/brand.h "defined LABELED_BRAND_NAME"; then
elif test_${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
@ -4115,7 +4116,7 @@ esac
check_compile_assert flt_lim "float.h limits.h" "DBL_MAX == (double)DBL_MAX" ||
add_cppflags '-I\$(SRC_PATH)/compat/float'
check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic
test_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic
set_default $PATHS_LIST
set_default nm
@ -4138,7 +4139,7 @@ enable_weak_pic() {
enabled pic && enable_weak_pic
check_cc <<EOF || die "Symbol mangling check failed."
test_cc <<EOF || die "Symbol mangling check failed."
int ff_extern;
EOF
sym=$($nm $TMPO | awk '/ff_extern/{ print substr($0, match($0, /[^ \t]*ff_extern/)) }')
@ -4147,16 +4148,16 @@ extern_prefix=${sym%%ff_extern*}
! disabled inline_asm && check_inline_asm inline_asm '"" ::'
for restrict_keyword in restrict __restrict__ __restrict ""; do
check_cc <<EOF && break
test_cc <<EOF && break
void foo(char * $restrict_keyword p);
EOF
done
check_cc <<EOF && enable pragma_deprecated
test_cc <<EOF && enable pragma_deprecated
void foo(void) { _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") }
EOF
check_cc <<EOF || die "endian test failed"
test_cc <<EOF || die "endian test failed"
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
EOF
od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
@ -4164,14 +4165,14 @@ od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
check_gas() {
log "check_gas using '$as' as AS"
# :vararg is used on aarch64, arm and ppc altivec
check_as <<EOF || return 1
test_as <<EOF || return 1
.macro m n, y:vararg=0
\n: .int \y
.endm
m x
EOF
# .altmacro is only used in arm asm
! enabled arm || check_as <<EOF || return 1
! enabled arm || test_as <<EOF || return 1
.altmacro
EOF
enable gnu_as
@ -4192,7 +4193,7 @@ if enabled_any arm aarch64 || enabled_all ppc altivec && enabled asm; then
[ $target_os = "darwin" ] && gaspp_as_type="apple-$gaspp_as_type"
check_cmd gas-preprocessor.pl -arch $arch -as-type $gaspp_as_type -- $as $as_noop &&
test_cmd gas-preprocessor.pl -arch $arch -as-type $gaspp_as_type -- $as $as_noop &&
gas="gas-preprocessor.pl -arch $arch -as-type $gaspp_as_type -- $as"
if ! check_gas ; then
@ -4201,7 +4202,7 @@ if enabled_any arm aarch64 || enabled_all ppc altivec && enabled asm; then
$nogas "GNU assembler not found, install/update gas-preprocessor"
fi
check_as <<EOF && enable as_func
test_as <<EOF && enable as_func
.func test
.endfunc
EOF
@ -4223,18 +4224,18 @@ elif enabled alpha; then
elif enabled arm; then
enabled msvc && check_cpp_condition stddef.h "defined _M_ARMT" && enable thumb
check_cpp_condition stddef.h "defined __thumb__" && enable_weak thumb
enabled msvc && test_cpp_condition stddef.h "defined _M_ARMT" && enable thumb
test_cpp_condition stddef.h "defined __thumb__" && enable_weak thumb
enabled thumb && check_cflags -mthumb || check_cflags -marm
if check_cpp_condition stddef.h "defined __ARM_PCS_VFP"; then
if test_cpp_condition stddef.h "defined __ARM_PCS_VFP"; then
enable vfp_args
elif check_cpp_condition stddef.h "defined _M_ARM_FP && _M_ARM_FP >= 30"; then
elif test_cpp_condition stddef.h "defined _M_ARM_FP && _M_ARM_FP >= 30"; then
enable vfp_args
elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__" && [ $target_os != darwin ]; 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 ;;
*) check_ld <<EOF && enable vfp_args && fpabi=vfp || fpabi=soft ;;
*) test_ld <<EOF && enable vfp_args && fpabi=vfp || fpabi=soft ;;
__asm__ (".eabi_attribute 28, 1");
int main(void) { return 0; }
EOF
@ -4255,16 +4256,16 @@ EOF
check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
check_as <<EOF && enable as_arch_directive
test_as <<EOF && enable as_arch_directive
.arch armv7-a
EOF
check_as <<EOF && enable as_fpu_directive
test_as <<EOF && enable as_fpu_directive
.fpu neon
EOF
# llvm's integrated assembler supports .object_arch from llvm 3.5
[ "$objformat" = elf32 ] || [ "$objformat" = elf64 ] &&
check_as <<EOF && enable as_object_arch
test_as <<EOF && enable as_object_arch
.object_arch armv4
EOF
@ -4309,9 +4310,9 @@ elif enabled ppc; then
check_cflags -maltivec -mabi=altivec
# check if our compiler supports Motorola AltiVec C API
check_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);" ||
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
enabled altivec || warn "Altivec disabled, possibly missing --cpu flag"
@ -4319,13 +4320,13 @@ elif enabled ppc; then
if enabled vsx; then
check_cflags -mvsx &&
check_code cc altivec.h "int v[4] = { 0 };
vector signed int v1 = vec_vsx_ld(0, v);" ||
test_code cc altivec.h "int v[4] = { 0 };
vector signed int v1 = vec_vsx_ld(0, v);" ||
disable vsx
fi
if enabled power8; then
check_cpp_condition "altivec.h" "defined(_ARCH_PWR8)" || disable power8
test_cpp_condition "altivec.h" "defined(_ARCH_PWR8)" || disable power8
fi
elif enabled x86; then
@ -4358,20 +4359,20 @@ EOF
probe_x86asm(){
x86asmexe_probe=$1
if check_cmd $x86asmexe_probe -v; then
if test_cmd $x86asmexe_probe -v; then
x86asmexe=$x86asmexe_probe
x86asm_type=nasm
x86asm_debug="-g -F dwarf"
X86ASMDEP=
X86ASM_DEPFLAGS='-MD $(@:.o=.d)'
elif check_cmd $x86asmexe_probe --version; then
elif test_cmd $x86asmexe_probe --version; then
x86asmexe=$x86asmexe_probe
x86asm_type=yasm
x86asm_debug="-g dwarf2"
X86ASMDEP='$(DEPX86ASM) $(X86ASMFLAGS) -M $(X86ASM_O) $< > $(@:.o=.d)'
X86ASM_DEPFLAGS=
fi
check_x86asm "movbe ecx, [5]" && enable x86asm
test_x86asm "movbe ecx, [5]" && enable x86asm
}
if ! disabled_any asm mmx x86asm; then
@ -4387,11 +4388,11 @@ EOF
elf*) enabled debug && append X86ASMFLAGS $x86asm_debug ;;
esac
check_x86asm "vextracti128 xmm0, ymm0, 0" || disable avx2_external
check_x86asm "vpmacsdd xmm0, xmm1, xmm2, xmm3" || disable xop_external
check_x86asm "vfmadd132ps ymm0, ymm1, ymm2" || disable fma3_external
check_x86asm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external
check_x86asm "CPU amdnop" || disable cpunop
test_x86asm "vextracti128 xmm0, ymm0, 0" || disable avx2_external
test_x86asm "vpmacsdd xmm0, xmm1, xmm2, xmm3" || disable xop_external
test_x86asm "vfmadd132ps ymm0, ymm1, ymm2" || disable fma3_external
test_x86asm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external
test_x86asm "CPU amdnop" || disable cpunop
fi
case "$cpu" in
@ -4402,7 +4403,7 @@ EOF
fi
check_code cc arm_neon.h "int16x8_t test = vdupq_n_s16(0)" && enable intrinsics_neon
test_code cc arm_neon.h "int16x8_t test = vdupq_n_s16(0)" && enable intrinsics_neon
check_ldflags -Wl,--as-needed
@ -4465,7 +4466,7 @@ 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)" &&
test_cpp_condition unistd.h "defined(_POSIX_MONOTONIC_CLOCK)" &&
{ check_lib clock_gettime time.h clock_gettime ||
check_lib clock_gettime time.h clock_gettime -lrt; }
@ -4646,7 +4647,7 @@ enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFil
enabled libwebp && require_pkg_config libwebp libwebp webp/encode.h WebPGetEncoderVersion
enabled libx264 && require_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode &&
require_cpp_condition x264.h "X264_BUILD >= 118" &&
{ check_cpp_condition x264.h "X264_MPEG2" &&
{ test_cpp_condition x264.h "X264_MPEG2" &&
enable libx262; }
enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get &&
require_cpp_condition x265.h "X265_BUILD >= 57"
@ -4675,8 +4676,8 @@ enabled openssl && { { check_pkg_config openssl openssl openssl/ssl.h
enabled avplay &&
test_pkg_config sdl "sdl >= 1.2.1 sdl < 1.3.0" SDL_events.h SDL_PollEvent
! disabled pod2man && check_cmd pod2man --help && enable pod2man || disable pod2man
! disabled texi2html && check_cmd texi2html -version && enable texi2html || disable texi2html
! disabled pod2man && test_cmd pod2man --help && enable pod2man || disable pod2man
! disabled texi2html && test_cmd texi2html -version && enable texi2html || disable texi2html
check_header linux/fb.h
check_header linux/videodev2.h
@ -4690,7 +4691,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
check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines
test_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
check_header "dev/bktr/ioctl_meteor.h dev/bktr/ioctl_bt848.h" ||
@ -4725,7 +4726,7 @@ fi
# d3d11va requires linking directly to dxgi and d3d11 if not building for
# the desktop api partition
check_cpp <<EOF && enable uwp && d3d11va_extralibs="-ldxgi -ld3d11"
test_cpp <<EOF && enable uwp && d3d11va_extralibs="-ldxgi -ld3d11"
#ifdef WINAPI_FAMILY
#include <winapifamily.h>
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
@ -4741,7 +4742,7 @@ EOF
enabled vaapi && require vaapi va/va.h vaInitialize -lva
enabled vaapi &&
check_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" ||
test_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" ||
disable vaapi
enabled vaapi &&
@ -4751,11 +4752,11 @@ enabled vaapi &&
check_lib vaapi_x11 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 -lX11
enabled vaapi &&
check_cpp_condition "va/va.h" "VA_CHECK_VERSION(1, 0, 0)" &&
test_cpp_condition "va/va.h" "VA_CHECK_VERSION(1, 0, 0)" &&
enable vaapi_1
enabled vdpau &&
check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
test_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
disable vdpau
enabled vdpau &&
@ -4801,7 +4802,7 @@ check_disable_warning_headers -Wno-unused-variable
check_objcflags -fobjc-arc && enable objc_arc
check_cc <<EOF && enable blocks_extension
test_cc <<EOF && enable blocks_extension
void (^block)(void);
EOF
@ -4846,7 +4847,7 @@ enabled xmm_clobber_test &&
-Wl,--wrap,sws_scale ||
disable xmm_clobber_test
check_ld <<EOF && enable proper_dce
test_ld <<EOF && enable proper_dce
extern const int array[512];
static inline int func(void) { return array[0]; }
int main(void) { return 0; }
@ -4857,11 +4858,11 @@ if enabled proper_dce; then
if test_ldflags -Wl,${version_script},$TMPV; then
append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver'
quotes='""'
check_cc <<EOF && enable symver_asm_label
test_cc <<EOF && enable symver_asm_label
void ff_foo(void) __asm__ ("av_foo@VERSION");
void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
EOF
check_cc <<EOF && enable symver_gnu_asm
test_cc <<EOF && enable symver_gnu_asm
__asm__(".symver ff_foo,av_foo@VERSION");
void ff_foo(void) {}
EOF
@ -4957,14 +4958,14 @@ elif enabled_any msvc icl; then
if enabled icl; then
# -Qansi-alias is basically -fstrict-aliasing, but does not work
# (correctly) on icl 13.x.
check_cpp_condition "windows.h" "__ICL < 1300 || __ICL >= 1400" &&
test_cpp_condition "windows.h" "__ICL < 1300 || __ICL >= 1400" &&
add_cflags -Qansi-alias
# icl will pass the inline asm tests but inline asm is currently
# not supported (build will fail)
disable inline_asm
fi
# msvcrt10 x64 incorrectly enables log2, only msvcrt12 (MSVC 2013) onwards actually has log2.
check_cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION >= 12" || disable log2
test_cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION >= 12" || disable log2
# 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
@ -4972,7 +4973,7 @@ elif enabled_any msvc icl; then
# If this declspec fails, force including stdlib.h before the restrict redefinition
# happens in config.h.
if [ $restrict_keyword != restrict ]; then
check_cc <<EOF || add_cflags -FIstdlib.h
test_cc <<EOF || add_cflags -FIstdlib.h
__declspec($restrict_keyword) void *foo(int);
EOF
fi
@ -4982,7 +4983,7 @@ for pfx in "" host_; do
varname=${pfx%_}cc_type
eval "type=\$$varname"
if [ "$type" = "msvc" ]; then
check_${pfx}cc <<EOF || add_${pfx}cflags -Dinline=__inline
test_${pfx}cc <<EOF || add_${pfx}cflags -Dinline=__inline
static inline int foo(int a) { return a; }
EOF
fi

Loading…
Cancel
Save