X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=f624cfc5211fd5148c68e9d36054dfb61b7e47c7;hb=1a5fdf9519d7f4b9a1bdda623516c37744f569bd;hp=663fe6dc9420e06c886e71265b47915b119d2b97;hpb=bd8b6185f6d1fb0433f048c4096b858e6f88ded6;p=ffmpeg diff --git a/configure b/configure index 663fe6dc942..f624cfc5211 100755 --- a/configure +++ b/configure @@ -1004,6 +1004,10 @@ require_pkg_config(){ add_extralibs $(get_safe ${pkg}_libs) } +hostcc_e(){ + eval printf '%s\\n' $HOSTCC_E +} + hostcc_o(){ eval printf '%s\\n' $HOSTCC_O } @@ -1015,6 +1019,13 @@ check_host_cc(){ check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC } +check_host_cpp(){ + log check_host_cpp "$@" + cat > $TMPC + log_file $TMPC + check_cmd $host_cc $HOSTCPPFLAGS $HOSTCFLAGS "$@" $(hostcc_e $TMPO) $TMPC +} + check_host_cppflags(){ log check_host_cppflags "$@" check_host_cc "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + apply(){ file=$1 shift @@ -1332,6 +1356,7 @@ HAVE_LIST=" isatty jack_port_get_latency_range ldbrx + libc_msvcrt libdc1394_1 libdc1394_2 local_aligned_16 @@ -1349,7 +1374,6 @@ HAVE_LIST=" mm_empty mmap mprotect - msvcrt nanosleep poll_h posix_memalign @@ -1552,12 +1576,12 @@ fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" fast_clz_if_any="alpha avr32 mips ppc x86" fast_unaligned_if_any="ppc x86" -inline_asm_deps="!tms470" need_memalign="altivec neon sse" -symver_if_any="symver_asm_label symver_gnu_asm" +# system capabilities +log2_deps="!libc_msvcrt" -log2_deps="!msvcrt" +symver_if_any="symver_asm_label symver_gnu_asm" # subsystems dct_select="rdft" @@ -2076,11 +2100,12 @@ LD_O='-o $@' LD_LIB='-l%' LD_PATH='-L' HOSTCC_C='-c' +HOSTCC_E='-E -o $@' HOSTCC_O='-o $@' HOSTLD_O='-o $@' host_cflags='-O3 -g' -host_cppflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600' +host_cppflags='-D_ISOC99_SOURCE' host_libs='-lm' host_cflags_filter=echo host_ldflags_filter=echo @@ -3179,7 +3204,6 @@ case $target_os in SHFLAGS='-shared -Wl,-h,$$(@F)' enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS" network_extralibs="-lsocket -lnsl" - add_cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 # When using suncc to build, the Solaris linker will mark # an executable with each instruction set encountered by # the Solaris assembler. As our libraries contain their own @@ -3375,49 +3399,69 @@ esac # determine libc flavour -# uclibc defines __GLIBC__, so it needs to be checked before glibc. -if check_cpp_condition features.h "defined __UCLIBC__"; then - libc_type=uclibc - add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -elif check_cpp_condition features.h "defined __GLIBC__"; then - libc_type=glibc - add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -# MinGW headers can be installed on Cygwin, so check for newlib first. -elif check_cpp_condition newlib.h "defined _NEWLIB_VERSION"; then - libc_type=newlib - add_cppflags -U__STRICT_ANSI__ -elif check_header _mingw.h; then - libc_type=mingw - check_cpp_condition _mingw.h \ - "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) || \ +probe_libc(){ + pfx=$1 + # uclibc defines __GLIBC__, so it needs to be checked before glibc. + if check_${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 + 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 + eval ${pfx}libc_type=newlib + add_${pfx}cppflags -U__STRICT_ANSI__ + # MinGW64 is backwards compatible with MinGW32, so check for it first. + elif check_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then + eval ${pfx}libc_type=mingw64 + add_${pfx}cppflags -U__STRICT_ANSI__ + elif check_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then + eval ${pfx}libc_type=mingw32 + check_${pfx}cpp_condition _mingw.h "__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__ -elif check_cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then - libc_type=msvcrt - add_compat strtod.o strtod=avpriv_strtod - add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ - _snprintf=avpriv_snprintf \ - vsnprintf=avpriv_vsnprintf - # The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to - # 0x601 by default unless something else is set by the user. - # This can easily lead to us detecting functions only present - # in such new versions and producing binaries requiring windows 7.0. - # Therefore explicitly set the default to XP unless the user has - # set something else on the command line. - check_cpp_condition stdlib.h "defined(_WIN32_WINNT)" || add_cppflags -D_WIN32_WINNT=0x0502 -elif check_cpp_condition stddef.h "defined __KLIBC__"; then - libc_type=klibc -elif check_cpp_condition sys/cdefs.h "defined __BIONIC__"; then - libc_type=bionic - add_compat strtod.o strtod=avpriv_strtod -fi + die "ERROR: MinGW32 runtime version must be >= 3.15." + add_${pfx}cppflags -U__STRICT_ANSI__ + elif check_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then + eval ${pfx}libc_type=msvcrt + # The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to + # 0x601 by default unless something else is set by the user. + # This can easily lead to us detecting functions only present + # in such new versions and producing binaries requiring windows 7.0. + # Therefore explicitly set the default to XP unless the user has + # set something else on the command line. + check_${pfx}cpp_condition stdlib.h "defined(_WIN32_WINNT)" || + add_${pfx}cppflags -D_WIN32_WINNT=0x0502 + elif check_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then + eval ${pfx}libc_type=klibc + elif check_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then + eval ${pfx}libc_type=bionic + elif check_${pfx}cpp_condition sys/brand.h "defined SOLARIS_BRAND_NAME"; then + eval ${pfx}libc_type=solaris + add_${pfx}cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 + fi +} -test -n "$libc_type" && enable $libc_type +probe_libc +test -n "$libc_type" && enable libc_$libc_type +probe_libc host_ +test -n "$host_libc_type" && enable host_libc_$host_libc_type + +case $libc_type in + bionic) + add_compat strtod.o strtod=avpriv_strtod + ;; + msvcrt) + add_compat strtod.o strtod=avpriv_strtod + add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ + _snprintf=avpriv_snprintf \ + vsnprintf=avpriv_vsnprintf + ;; +esac # hacks for compiler/libc/os combinations -if enabled_all tms470 glibc; then +if enabled_all tms470 libc_glibc; then CPPFLAGS="-I${source_path}/compat/tms470 ${CPPFLAGS}" add_cppflags -D__USER_LABEL_PREFIX__= add_cppflags -D__builtin_memset=memset @@ -3425,7 +3469,7 @@ if enabled_all tms470 glibc; then add_cflags -pds=48 # incompatible redefinition of macro fi -if enabled_all ccc glibc; then +if enabled_all ccc libc_glibc; then add_ldflags -Wl,-z,now # calls to libots crash without this fi @@ -3839,7 +3883,9 @@ for func in $MATH_FUNCS; do done # these are off by default, so fail if requested and not available -enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lavifil32 +enabled avisynth && { { check_header "avisynth/avisynth_c.h" && check_lib2 "windows.h" LoadLibrary; } || + { check_header "avxsynth/avxsynth_c.h" && check_lib2 "dlfcn.h" dlopen -ldl; } || + die "ERROR: LoadLibrary/dlopen not found, or avisynth header not found"; } enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; } enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac @@ -4098,6 +4144,7 @@ elif enabled armcc; then add_cflags -W${armcc_opt},--diag_suppress=513 # pointer sign elif enabled tms470; then add_cflags -pds=824 -pds=837 + disable inline_asm elif enabled pathscale; then add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt=OFF elif enabled_any msvc icl; then @@ -4141,10 +4188,11 @@ check_deps $CONFIG_LIST \ echo "install prefix $prefix" echo "source path $source_path" echo "C compiler $cc" +echo "C library $libc_type" if test "$host_cc" != "$cc"; then echo "host C compiler $host_cc" + echo "host C library $host_libc_type" fi -echo "C library $libc_type" echo "ARCH $arch ($cpu)" if test "$build_suffix" != ""; then echo "build suffix $build_suffix"