|  | #                                               -*- Autoconf -*- | 
|  | # Process this file with autoconf to produce a configure script. | 
|  | # Use AM_MAINTANER_MODE somewhere in this file once reconfigurations settle down. | 
|  |  | 
|  | AC_PREREQ([2.71]) | 
|  | AC_INIT([mingw-w64-runtime],[4.0b],[mingw-w64-public@lists.sourceforge.net]) | 
|  | AC_CONFIG_AUX_DIR([build-aux]) | 
|  | AC_CONFIG_SRCDIR([ChangeLog]) | 
|  | AC_CONFIG_HEADERS([config.h]) | 
|  |  | 
|  | AM_INIT_AUTOMAKE([1.14 foreign subdir-objects]) | 
|  | AM_MAINTAINER_MODE | 
|  |  | 
|  | AC_CANONICAL_HOST | 
|  |  | 
|  | AC_MSG_CHECKING([for sysroot]) | 
|  | AC_ARG_WITH([sysroot], | 
|  | [AS_HELP_STRING([--with-sysroot=DIR], | 
|  | [Search for headers within DIR/include (default: prefix)])], | 
|  | [], | 
|  | [AS_VAR_SET([with_sysroot],[yes])]) | 
|  | AS_CASE([$with_sysroot], | 
|  | [no],[], | 
|  | [yes],[AS_VAR_SET([with_sysroot],[$prefix])], | 
|  | []) | 
|  | AC_MSG_RESULT([$with_sysroot]) | 
|  | AS_VAR_IF([with_sysroot],[no],[],[AS_VAR_SET([TARGET_SYSTEM_ROOT],[$with_sysroot])]) | 
|  | AC_SUBST([TARGET_SYSTEM_ROOT]) | 
|  | AM_CONDITIONAL([WITHSYSROOT],[AS_VAR_TEST_SET([TARGET_SYSTEM_ROOT])]) | 
|  |  | 
|  |  | 
|  | # Checks for programs. | 
|  | # Checks for headers, libs, etc need to utilize the sysroot... no idea how | 
|  | AC_NO_EXECUTABLES | 
|  | AC_PROG_SED | 
|  | AC_PROG_AWK | 
|  | AC_PROG_CC | 
|  | AC_PROG_CXX | 
|  | AC_PROG_CPP | 
|  | AC_PROG_INSTALL | 
|  | AC_PROG_RANLIB | 
|  | AC_CHECK_TOOL([DLLTOOL], [dlltool], [:]) | 
|  | AM_PROG_AR | 
|  | AM_PROG_AS | 
|  | dnl Remove this once automake fixes the bug where AS is not defined according to $host | 
|  | AC_CHECK_TOOL([AS], [as], [:]) | 
|  | dnl --- | 
|  | AM_PROG_CC_C_O | 
|  |  | 
|  | AC_MSG_CHECKING([whether dlltool supports --temp-prefix]) | 
|  | cat > test.def <<EOF | 
|  | LIBRARY test.dll | 
|  | EXPORTS | 
|  | myfunc | 
|  | EOF | 
|  |  | 
|  | AS_VAR_SET([test_dlltool_flags],[]) | 
|  | AC_DEFUN([TEST_DLLTOOL], [ | 
|  | test_dlltool_flags_save="$test_dlltool_flags" | 
|  | test_dlltool_flags="$test_dlltool_flags $1" | 
|  | AS_ECHO([["$DLLTOOL $test_dlltool_flags -d test.def -l libtest.a"]]) >&AS_MESSAGE_LOG_FD | 
|  | AS_IF($DLLTOOL $test_dlltool_flags -d test.def -l libtest.a >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD, [ | 
|  | $2 | 
|  | ], [ | 
|  | test_dlltool_flags="$test_dlltool_flags_save" | 
|  | ]) | 
|  | ]) | 
|  |  | 
|  | # First check if $DLLTOOL supports the -m option. LLVM dlltool might not | 
|  | # have a default arch (in older versions), so make sure we specify one. | 
|  | TEST_DLLTOOL([--as-flags=--64 -m i386:x86-64]) | 
|  | # Now check if --temp-prefix is supported. GNU dlltool supports it, | 
|  | # LLVM dlltool doesn't, yet at least (but doesn't need it either). | 
|  | AS_VAR_SET([dlltool_has_temp_prefix],[no]) | 
|  | TEST_DLLTOOL([--temp-prefix myprefix], [dlltool_has_temp_prefix=yes]) | 
|  |  | 
|  | rm -f test.def libtest.a | 
|  | AC_MSG_RESULT([$dlltool_has_temp_prefix]) | 
|  | AM_CONDITIONAL([DLLTOOL_HAS_TEMP_PREFIX],[test $dlltool_has_temp_prefix = yes]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to build a w32api package for Cygwin]) | 
|  | AC_ARG_ENABLE([w32api], | 
|  | [AS_HELP_STRING([--enable-w32api], | 
|  | [Enable building a w32api package for Cygwin])], | 
|  | [], | 
|  | [AS_VAR_SET([enable_w32api],[no])]) | 
|  | AC_MSG_RESULT([$enable_w32api]) | 
|  | AS_CASE([$enable_w32api], | 
|  | [no],[], | 
|  | [yes],[AS_VAR_SET([W32API]) | 
|  | AS_VAR_SET([includedir],[${prefix}/include/w32api])], | 
|  | [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])]) | 
|  | AM_CONDITIONAL([W32API], [AS_VAR_TEST_SET([W32API])]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to build the Win32 libraries]) | 
|  | AC_ARG_ENABLE([lib32], | 
|  | [AS_HELP_STRING([--enable-lib32], | 
|  | [Build the Win32 libraries])], | 
|  | [], | 
|  | [ | 
|  | _save_CFLAGS="$CFLAGS" | 
|  | CFLAGS="$CFLAGS -m32" | 
|  | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[const char test[(sizeof(void*)==4)?0:-1];]],[])], | 
|  | [enable_lib32=yes], | 
|  | [enable_lib32=no]) | 
|  | CFLAGS="$_save_CFLAGS"]) | 
|  | AC_MSG_RESULT([$enable_lib32]) | 
|  | AS_CASE([$enable_lib32], | 
|  | [no],[], | 
|  | [yes],[AS_VAR_SET([LIB32])], | 
|  | [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])]) | 
|  | AM_CONDITIONAL([LIB32], [AS_VAR_TEST_SET([LIB32])]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to build the Win64 libraries]) | 
|  | AC_ARG_ENABLE([lib64], | 
|  | [AS_HELP_STRING([--enable-lib64], | 
|  | [Build the Win64 libraries])], | 
|  | [], | 
|  | [ | 
|  | _save_CFLAGS="$CFLAGS" | 
|  | CFLAGS="$CFLAGS -m64" | 
|  | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[const char test[(sizeof(void*)==8)?0:-1];]],[])], | 
|  | [enable_lib64=yes], | 
|  | [enable_lib64=no]) | 
|  | CFLAGS="$_save_CFLAGS"]) | 
|  | AC_MSG_RESULT([$enable_lib64]) | 
|  | AS_CASE([$enable_lib64], | 
|  | [no],[], | 
|  | [yes],[AS_VAR_SET([LIB64])], | 
|  | [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])]) | 
|  | AM_CONDITIONAL([LIB64], [AS_VAR_TEST_SET([LIB64])]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to build the WinARM32 libraries]) | 
|  | AC_ARG_ENABLE([libarm32], | 
|  | [AS_HELP_STRING([--enable-libarm32], | 
|  | [Build the WinARM32 libraries])], | 
|  | [], | 
|  | [AS_CASE([$host_cpu], | 
|  | [armv7*],[enable_libarm32=yes], | 
|  | [*],[enable_libarm32=no]) | 
|  | ]) | 
|  | AC_MSG_RESULT([$enable_libarm32]) | 
|  | AS_CASE([$enable_libarm32], | 
|  | [no],[], | 
|  | [yes],[AS_VAR_SET([LIBARM32])], | 
|  | [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])]) | 
|  | AM_CONDITIONAL([LIBARM32], [AS_VAR_TEST_SET([LIBARM32])]) | 
|  |  | 
|  | AS_VAR_IF([enable_libarm32],[yes],[ | 
|  | AS_IF([AS_VAR_TEST_SET([LIB32]) || AS_VAR_TEST_SET([LIB64])], | 
|  | [AC_MSG_WARN([Building the runtime to use libarm32 with lib32 or lib64 is unsupported.])])]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to build the WinARM64 libraries]) | 
|  | AC_ARG_ENABLE([libarm64], | 
|  | [AS_HELP_STRING([--enable-libarm64], | 
|  | [Build the WinARM64 libraries])], | 
|  | [], | 
|  | [AS_CASE([$host_cpu], | 
|  | [aarch64* | arm64*],[enable_libarm64=yes], | 
|  | [*],[enable_libarm64=no]) | 
|  | ]) | 
|  | AC_MSG_RESULT([$enable_libarm64]) | 
|  | AS_CASE([$enable_libarm64], | 
|  | [no],[], | 
|  | [yes],[AS_VAR_SET([LIBARM64])], | 
|  | [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])]) | 
|  | AM_CONDITIONAL([LIBARM64], [AS_VAR_TEST_SET([LIBARM64])]) | 
|  |  | 
|  | AS_VAR_IF([enable_libarm64],[yes],[ | 
|  | AS_IF([AS_VAR_TEST_SET([LIB32]) || AS_VAR_TEST_SET([LIB64]) || AS_VAR_TEST_SET([LIBARM32])], | 
|  | [AC_MSG_WARN([Building the runtime to use libarm64 with lib32, lib64 or libarm32 is unsupported.])])]) | 
|  |  | 
|  | AS_CASE([$host_cpu], | 
|  | [x86_64],[ | 
|  | libx8664suffx=lib | 
|  | libx8632suffx=lib32 | 
|  | libarm64suffx=libarm64 | 
|  | libarm32suffx=libarm32], | 
|  | [i*86],[ | 
|  | libx8664suffx=lib64 | 
|  | libx8632suffx=lib | 
|  | libarm64suffx=libarm64 | 
|  | libarm32suffx=libarm32], | 
|  | [aarch64* | arm64*],[ | 
|  | libx8664suffx=libx8664 | 
|  | libx8632suffx=libx8632 | 
|  | libarm64suffx=lib | 
|  | libarm32suffx=lib32], | 
|  | [armv7*],[ | 
|  | libx8664suffx=libx8664 | 
|  | libx8632suffx=libx8632 | 
|  | libarm64suffx=lib64 | 
|  | libarm32suffx=lib], | 
|  | [ | 
|  | libx8664suffx=libx8664 | 
|  | libx8632suffx=libx8632 | 
|  | libarm64suffx=libarm64 | 
|  | libarm32suffx=libarm32] | 
|  | ) | 
|  |  | 
|  | AS_VAR_IF([enable_w32api],[yes],[ | 
|  | libx8664suffx=$libx8664suffx/w32api | 
|  | libx8632suffx=$libx8632suffx/w32api | 
|  | libarm64suffx=$libarm64suffx/w32api | 
|  | libarm32suffx=$libarm32suffx/w32api | 
|  | ]) | 
|  |  | 
|  | AC_SUBST([LIBX8664SUFFIXDIR],[$libx8664suffx]) | 
|  | AC_SUBST([LIBX8632SUFFIXDIR],[$libx8632suffx]) | 
|  | AC_SUBST([LIBARM64SUFFIXDIR],[$libarm64suffx]) | 
|  | AC_SUBST([LIBARM32SUFFIXDIR],[$libarm32suffx]) | 
|  |  | 
|  | AM_CONDITIONAL([ARM64EC],[test $host_cpu = arm64ec]) | 
|  |  | 
|  | # Checks for features. | 
|  |  | 
|  | AC_MSG_CHECKING([whether to enable globbing]) | 
|  | AC_ARG_ENABLE([wildcard], | 
|  | [AS_HELP_STRING([--enable-wildcard], | 
|  | [Enable command line globbing])], | 
|  | [], | 
|  | [enable_wildcard=no]) | 
|  | AS_CASE([$enable_wildcard], | 
|  | [yes],[enable_wildcard_value=-1], | 
|  | [no],[enable_wildcard_value=0], | 
|  | [AC_MSG_ERROR([Please only use --enable-wildcard or --disable-wildcard, without any additional arguments.])]) | 
|  | AC_DEFINE_UNQUOTED([__ENABLE_GLOBBING],[$enable_wildcard_value],[Define as -1 to enable command line globbing or 0 to disable it.]) | 
|  | AC_MSG_RESULT([$enable_wildcard]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to enable private exports]) | 
|  | AC_ARG_ENABLE([private-exports], | 
|  | [AS_HELP_STRING([--enable-private-exports], | 
|  | [Enable exporting private internal functions])], | 
|  | [], | 
|  | [enable_private_exports=no]) | 
|  | AS_CASE([$enable_private_exports], | 
|  | [yes],[], | 
|  | [no],[], | 
|  | [AC_MSG_ERROR([Please only use --enable-private-exports  or --disable-private-exports, without any additional arguments.])]) | 
|  | AM_CONDITIONAL([PRIVATE_EXPORTS],[test $enable_private_exports = yes]) | 
|  | AC_MSG_RESULT([$enable_private_exports]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to enable delay import libs]) | 
|  | AC_ARG_ENABLE([delay-import-libs], | 
|  | [AS_HELP_STRING([--enable-delay-import-libs], | 
|  | [Enable creation of delay-import libraries])], | 
|  | [], | 
|  | [enable_delay_import_libs=no]) | 
|  | AS_CASE([$enable_delay_import_libs], | 
|  | [yes],[], | 
|  | [no],[], | 
|  | [AC_MSG_ERROR([Please only use --enable-delay-import-libs  or --disable-delay-import-libs, without any additional arguments.])]) | 
|  | AM_CONDITIONAL([DELAY_IMPORT_LIBS],[test $enable_delay_import_libs = yes]) | 
|  | AC_MSG_RESULT([$enable_delay_import_libs]) | 
|  |  | 
|  | AC_MSG_CHECKING([what to provide as libmsvcrt.a]) | 
|  | AC_ARG_WITH([default-msvcrt], | 
|  | [AS_HELP_STRING([--with-default-msvcrt=LIB], | 
|  | [Lib to provide as libmsvcrt.a (default: ucrt)])], | 
|  | [], | 
|  | [with_default_msvcrt=ucrt]) | 
|  | if test "$with_default_msvcrt" = "msvcrt"; then | 
|  | with_default_msvcrt=msvcrt-os | 
|  | fi | 
|  | AC_MSG_RESULT([$with_default_msvcrt]) | 
|  | AS_VAR_SET([MSVCRT_LIB],[lib${with_default_msvcrt}.a]) | 
|  | AC_SUBST([MSVCRT_LIB]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to include support for Control Flow Guard]) | 
|  | AC_ARG_ENABLE([cfguard], | 
|  | [AS_HELP_STRING([--enable-cfguard], | 
|  | [Enable building with Control Flow Guard support (Clang)])], | 
|  | [], | 
|  | [AS_VAR_SET([enable_cfguard],[no])]) | 
|  | AC_MSG_RESULT([$enable_cfguard]) | 
|  | AS_CASE([$enable_cfguard], | 
|  | [no],[], | 
|  | [yes],[AS_VAR_SET([CFGUARD_CFLAGS],["-mguard=cf -DHAS_CFGUARD"])], | 
|  | [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])]) | 
|  | AC_SUBST([CFGUARD_CFLAGS]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether to enable experimental features]) | 
|  | AC_ARG_ENABLE([experimental], | 
|  | [AS_HELP_STRING([--enable-experimental], | 
|  | [Enable experimental features, valid options are comma separated combination of all, dfp, printf128, registeredprintf, softmath.])], | 
|  | [experimental_features=$enable_experimental], | 
|  | [experimental_features="no"]) | 
|  |  | 
|  | enable_dfp=no | 
|  | enable_printf128=no | 
|  | enable_registeredprintf=no | 
|  | enable_softmath=no | 
|  | experiment_list=$($AWK 'BEGIN{OFS=" "; len = split(ARGV@<:@1@:>@,str,","); for(; len != 0; len--) print str@<:@len@:>@ }' "$experimental_features") | 
|  |  | 
|  | for arg in $experiment_list | 
|  | do | 
|  | AS_CASE([$arg], | 
|  | [dfp],[enable_dfp=yes], | 
|  | [printf128],[enable_printf128=yes], | 
|  | [registeredprintf],[enable_registeredprintf=yes], | 
|  | [softmath],[enable_softmath=yes], | 
|  | [all], [enable_dfp=yes; enable_printf128=yes; enable_registeredprintf=yes; enable_softmath=yes; ], | 
|  | [yes], [enable_dfp=yes; enable_printf128=yes; enable_registeredprintf=yes; enable_softmath=yes; ], | 
|  | [no],  [enable_dfp=no; enable_printf128=no; enable_registeredprintf=no; enable_softmath=no; ], | 
|  | [AC_MSG_ERROR([Unknown option "$arg"])] | 
|  | ) | 
|  | done | 
|  |  | 
|  | AC_MSG_RESULT([$experimental_features]) | 
|  | AM_CONDITIONAL([ENABLE_DFP],[ test "$enable_dfp" = "yes" ]) | 
|  | AM_CONDITIONAL([ENABLE_PRINTF128],[ test "$enable_printf128" = "yes" ]) | 
|  | AM_CONDITIONAL([ENABLE_REGISTEREDPRINTF],[ test "$enable_registeredprintf" = "yes" ]) | 
|  | AM_CONDITIONAL([ENABLE_SOFTMATH],[ test "$enable_softmath" = "yes" ]) | 
|  | AM_COND_IF([ENABLE_DFP],[AC_DEFINE([__ENABLE_DFP],[1],[Build DFP support])]) | 
|  | AM_COND_IF([ENABLE_PRINTF128],[AC_DEFINE([__ENABLE_PRINTF128],[1],[Build DFP support])]) | 
|  | AM_COND_IF([ENABLE_REGISTEREDPRINTF],[AC_DEFINE([__ENABLE_REGISTEREDPRINTF],[1],[Build DFP support])]) | 
|  | AM_COND_IF([ENABLE_SOFTMATH],[AC_DEFINE([__ENABLE_SOFTMATH],[1],[Build softmath routines])]) | 
|  |  | 
|  | AC_MSG_CHECKING([whether the compiler supports -municode]) | 
|  | AC_ARG_ENABLE([tests-unicode], | 
|  | [AS_HELP_STRING([--enable-tests-unicode], | 
|  | [Enable the unicode testsuite without testing the compiler for support.])], | 
|  | [],[ | 
|  | saved_CFLAGS="$CFLAGS" | 
|  | CFLAGS="$CFLAGS -municode" | 
|  | AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ | 
|  | #ifndef UNICODE | 
|  | # error UNICODE not defined with -municode | 
|  | #endif | 
|  | ]])], | 
|  | [enable_tests_unicode=yes], | 
|  | [enable_tests_unicode=no]) | 
|  | CFLAGS="$saved_CFLAGS"]) | 
|  | AM_CONDITIONAL([ENABLE_TESTS_UNICODE],[test x$enable_tests_unicode = xyes]) | 
|  | AC_MSG_RESULT([$enable_tests_unicode]) | 
|  |  | 
|  | # Checks for libraries. | 
|  |  | 
|  | # Checks for header files. | 
|  | #AC_HEADER_DIRENT | 
|  | #AC_HEADER_STDC | 
|  | #AC_CHECK_HEADERS([fcntl.h fenv.h float.h inttypes.h limits.h locale.h malloc.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/time.h sys/timeb.h termios.h unistd.h wchar.h wctype.h]) | 
|  |  | 
|  | # Checks for typedefs, structures, and compiler characteristics. | 
|  | #AC_C_INLINE | 
|  | #AC_HEADER_TIME | 
|  | #AC_C_VOLATILE | 
|  | #AC_CHECK_TYPES([ptrdiff_t]) | 
|  |  | 
|  | # Checks for library functions. | 
|  | #AC_FUNC_MALLOC | 
|  | #AC_FUNC_MBRTOWC | 
|  | #AC_FUNC_REALLOC | 
|  | #AC_FUNC_STRTOD | 
|  | #AC_FUNC_VPRINTF | 
|  | #AC_CHECK_FUNCS([alarm atexit btowc fesetround floor ftruncate gettimeofday isascii localeconv mbrlen memmove memset pow rint setlocale sqrt strcasecmp strchr strncasecmp strtoull strtoumax]) | 
|  |  | 
|  | # Check for __ImageBase linker symbol. | 
|  | AC_MSG_CHECKING([whether the linker provides __ImageBase symbol]) | 
|  | # Run this test manually instead of wrapping it in AC_LINK_IFELSE; when | 
|  | # bootstrapping an environment, an earlier linking test will have failed, | 
|  | # which both causes autoconf to refuse to run any linker test at all, | 
|  | # and even if $ac_no_link is overridden, the linker test iteslf will explicitly | 
|  | # check that the linker actually produced output in the given output file. | 
|  | # If $ac_exeext is empty, as it is when the earlier linker test failed, gcc | 
|  | # will behave differently depending on version. If run with "gcc conftest.c | 
|  | # -o conftest", old versions will produce explicitly a file named "conftest", | 
|  | # while modern GCC versions will produce "conftest.exe". AC_LINK_IFELSE will | 
|  | # explicitly look for the output file named "conftest$ac_exeext", which isn't | 
|  | # found, and the test fails even though linking succeeded. | 
|  | # | 
|  | # Therefore, just do a manual test; run the linking command and check the return | 
|  | # code whether it was successful or not. | 
|  | # | 
|  | # This test uses both mainCRTStartup and main functions, to let lld deduce | 
|  | # entry point and subsystem automatically without having to manually specify, | 
|  | # anything. And as long as main() is provided, we need to implicitly provide | 
|  | # __main as well, since the compiler injects a call to it. | 
|  |  | 
|  | cat <<_ACEOF >conftest.$ac_ext | 
|  | extern unsigned char __ImageBase[[]]; | 
|  |  | 
|  | // Define a dummy call helper to satisfy the linker on ARM64EC | 
|  | void *__os_arm64x_dispatch_ret = 0; | 
|  |  | 
|  | void __main(void) { | 
|  | } | 
|  | int main(void) { | 
|  | return __ImageBase[[0]]; | 
|  | } | 
|  | int mainCRTStartup(void) { | 
|  | return main(); | 
|  | } | 
|  | _ACEOF | 
|  |  | 
|  | echo "$as_me:$LINENO: $CC conftest.$ac_ext $LDFLAGS -nostdlib -o conftest$ac_exeext" >&AS_MESSAGE_LOG_FD | 
|  | # Doing the link test with -nosdlib, to avoid trying to link in any libraries | 
|  | # which might not exist yet at this point. | 
|  | if $CC conftest.$ac_ext $LDFLAGS -nostdlib -o conftest$ac_exeext >&AS_MESSAGE_LOG_FD 2>&1; then | 
|  | ld_provides_imagebase=yes | 
|  | else | 
|  | ld_provides_imagebase=no | 
|  | fi | 
|  | rm -f conftest$ac_exeext conftest.$ac_ext | 
|  | AC_MSG_RESULT([$ld_provides_imagebase]) | 
|  | AS_CASE([$ld_provides_imagebase], | 
|  | [no],[AS_VAR_SET([IMAGEBASE_CFLAGS],["-D__ImageBase=__MINGW_LSYMBOL\(_image_base__\)"])], | 
|  | [AS_VAR_SET([IMAGEBASE_CFLAGS])]) | 
|  | AC_SUBST([IMAGEBASE_CFLAGS]) | 
|  |  | 
|  | AC_CHECK_HEADER([_mingw_mac.h], [], [AC_MSG_ERROR([Please check if the mingw-w64 header set and the build/host option are set properly.])]) | 
|  |  | 
|  | #Warnings and errors, default level is 3 | 
|  | AC_MSG_CHECKING([for warning levels]) | 
|  | AC_ARG_ENABLE([warnings], | 
|  | [AS_HELP_STRING([[--enable-warnings[=0-5]]], | 
|  | [Enable compile time warnings @<:@default=3@:>@])], | 
|  | [AS_CASE([$enableval], | 
|  | [yes], [warning_level=3], | 
|  | [no],  [warning_level=0], | 
|  | [[[0-5]]], [warning_level="$enableval"], | 
|  | [warning_level=3])], | 
|  | [warning_level=3]) | 
|  | AC_MSG_RESULT([Level $warning_level]) | 
|  |  | 
|  | #Add warning flags as appropriate. Level 4 and above are only for testing purpose. | 
|  | AS_CASE([$warning_level], | 
|  | [0],[ADD_C_CXX_WARNING_FLAGS="-Wall"], | 
|  | [1],[ | 
|  | ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra" | 
|  | ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration"], | 
|  | [2],[ | 
|  | ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing -Wshadow -Wpacked -Winline" | 
|  | ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration"], | 
|  | [3],[ | 
|  | ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing -Wshadow -Wpacked -Winline" | 
|  | ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration -Wmissing-noreturn -Wmissing-prototypes"], | 
|  | [4],[ | 
|  | ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing=2 -Wsystem-headers -Wshadow -Wmissing-declarations -Wpacked -Winline -Werror -pedantic" | 
|  | ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration -Wmissing-noreturn -Wmissing-prototypes"], | 
|  | [5],[ | 
|  | ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing=2 -Wsystem-headers -Wshadow -Wmissing-declarations -Wpacked -Wredundant-decls -Winline -Werror -Wfatal-errors -pedantic -pedantic-errors" | 
|  | ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration -Wmissing-noreturn -Wmissing-prototypes"] | 
|  | ) | 
|  |  | 
|  | AC_SUBST(ADD_C_ONLY_WARNING_FLAGS) | 
|  | AC_SUBST(ADD_C_CXX_WARNING_FLAGS) | 
|  | AC_SUBST(ADD_CXX_ONLY_WARNING_FLAGS) | 
|  |  | 
|  | AC_CONFIG_FILES([Makefile]) | 
|  | AC_OUTPUT | 
|  |  | 
|  | AC_MSG_NOTICE([]) | 
|  | AC_MSG_NOTICE([]) | 
|  | AC_MSG_NOTICE([]) | 
|  | AC_MSG_NOTICE([------------------------------------------------------------------------]) | 
|  | AC_MSG_NOTICE([$PACKAGE $VERSION]) | 
|  | AC_MSG_NOTICE([------------------------------------------------------------------------]) | 
|  | AC_MSG_NOTICE([]) | 
|  | AC_MSG_NOTICE([]) | 
|  | AC_MSG_NOTICE([Configuration Options Summary:]) | 
|  | AC_MSG_NOTICE([]) | 
|  | AC_MSG_NOTICE([  WinARM32 runtime.....: $enable_libarm32]) | 
|  | AC_MSG_NOTICE([  WinARM64 runtime.....: $enable_libarm64]) | 
|  | AC_MSG_NOTICE([  Win32 runtime........: $enable_lib32]) | 
|  | AC_MSG_NOTICE([  Win64 runtime........: $enable_lib64]) | 
|  | AC_MSG_NOTICE([  C Warning Flags......: $ADD_C_ONLY_WARNING_FLAGS]) | 
|  | AC_MSG_NOTICE([  C++ Warning Flags....: $ADD_CXX_ONLY_WARNING_FLAGS]) | 
|  | AC_MSG_NOTICE([  Common Warning Flags.: $ADD_C_CXX_WARNING_FLAGS]) | 
|  | AC_MSG_NOTICE([  Default msvcrt.......: $with_default_msvcrt]) | 
|  | AC_MSG_NOTICE([  Control Flow Guard...: $enable_cfguard]) | 
|  | AC_MSG_NOTICE([]) | 
|  | AC_MSG_NOTICE([  DFP printf...........: $enable_dfp]) | 
|  | AC_MSG_NOTICE([  128-bit printf.......: $enable_printf128]) | 
|  | AC_MSG_NOTICE([  Custom printf........: $enable_registeredprintf]) | 
|  | AC_MSG_NOTICE([  Softhmath............: $enable_softmath]) | 
|  | AC_MSG_NOTICE([]) | 
|  |  | 
|  |  |