Don't test for old compilers in C++11 mode in configure

This makes configure faster when C++11 is enabled by avoiding spending time on
compiling unnecessary checks in this case.
This commit is contained in:
Vadim Zeitlin
2016-02-01 04:42:41 +01:00
parent 81d7f56986
commit a2ecb7a320
4 changed files with 150 additions and 136 deletions

233
configure vendored
View File

@@ -4602,10 +4602,10 @@ fi
eval "$wx_cv_use_liblzma" eval "$wx_cv_use_liblzma"
fi fi
# Check whether --with-libxpm was given. # Check whether --with-libxpm was given.
if test "${with_libxpm+set}" = set; then : if test "${with_libxpm+set}" = set; then :
withval=$with_libxpm; withval=$with_libxpm;
@@ -17801,6 +17801,118 @@ if test $ac_cv_c_bigendian = yes; then
fi fi
if test "x$SUNCXX" = xyes; then
CXXFLAGS="-features=tmplife $GNU_SOURCE_FLAG $CXXFLAGS"
fi
if test "x$SUNCC" = xyes; then
CFLAGS="-erroff=E_NO_EXPLICIT_TYPE_GIVEN $CFLAGS"
fi
if test "x$SGICC" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if cc version is 7.4.4 or greater" >&5
$as_echo_n "checking if cc version is 7.4.4 or greater... " >&6; }
if ${wx_cv_prog_sgicc744+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#if _SGI_COMPILER_VERSION >= 744
chock me: mipsPro is 7.4.4 or later
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
wx_cv_prog_sgicc744=no
else
wx_cv_prog_sgicc744=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wx_cv_prog_sgicc744" >&5
$as_echo "$wx_cv_prog_sgicc744" >&6; }
if test "x$wx_cv_prog_sgicc744" = "xyes"; then
CFLAGS="-woff 3970 $CFLAGS"
fi
fi
if test "x$SGICXX" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if CC version is 7.4.4 or greater" >&5
$as_echo_n "checking if CC version is 7.4.4 or greater... " >&6; }
if ${wx_cv_prog_sgicxx744+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#if _SGI_COMPILER_VERSION >= 744
chock me: mipsPro is 7.4.4 or later
#endif
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
wx_cv_prog_sgicxx744=no
else
wx_cv_prog_sgicxx744=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wx_cv_prog_sgicxx744" >&5
$as_echo "$wx_cv_prog_sgicxx744" >&6; }
if test "x$wx_cv_prog_sgicxx744" = "xyes"; then
CXXFLAGS="-woff 3970 $CXXFLAGS"
fi
fi
if test "x$HPCC" = "xyes"; then
CFLAGS="+W 2011,2450 $CFLAGS"
fi
if test "x$HPCXX" = "xyes"; then
CXXFLAGS="+W 2340,4232 $CXXFLAGS"
fi
if test "x$COMPAQCXX" = "xyes"; then
CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
fi
if test "$HAVE_CXX11" != "1" ; then
ac_ext=cpp ac_ext=cpp
@@ -17919,116 +18031,6 @@ $as_echo "$wx_cv_explicit" >&6; }
fi fi
if test "x$SUNCXX" = xyes; then
CXXFLAGS="-features=tmplife $GNU_SOURCE_FLAG $CXXFLAGS"
fi
if test "x$SUNCC" = xyes; then
CFLAGS="-erroff=E_NO_EXPLICIT_TYPE_GIVEN $CFLAGS"
fi
if test "x$SGICC" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if cc version is 7.4.4 or greater" >&5
$as_echo_n "checking if cc version is 7.4.4 or greater... " >&6; }
if ${wx_cv_prog_sgicc744+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#if _SGI_COMPILER_VERSION >= 744
chock me: mipsPro is 7.4.4 or later
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
wx_cv_prog_sgicc744=no
else
wx_cv_prog_sgicc744=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wx_cv_prog_sgicc744" >&5
$as_echo "$wx_cv_prog_sgicc744" >&6; }
if test "x$wx_cv_prog_sgicc744" = "xyes"; then
CFLAGS="-woff 3970 $CFLAGS"
fi
fi
if test "x$SGICXX" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if CC version is 7.4.4 or greater" >&5
$as_echo_n "checking if CC version is 7.4.4 or greater... " >&6; }
if ${wx_cv_prog_sgicxx744+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#if _SGI_COMPILER_VERSION >= 744
chock me: mipsPro is 7.4.4 or later
#endif
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
wx_cv_prog_sgicxx744=no
else
wx_cv_prog_sgicxx744=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wx_cv_prog_sgicxx744" >&5
$as_echo "$wx_cv_prog_sgicxx744" >&6; }
if test "x$wx_cv_prog_sgicxx744" = "xyes"; then
CXXFLAGS="-woff 3970 $CXXFLAGS"
fi
fi
if test "x$HPCC" = "xyes"; then
CFLAGS="+W 2011,2450 $CFLAGS"
fi
if test "x$HPCXX" = "xyes"; then
CXXFLAGS="+W 2340,4232 $CXXFLAGS"
fi
if test "x$COMPAQCXX" = "xyes"; then
CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
fi
ac_ext=cpp ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS' ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -18436,8 +18438,7 @@ fi
fi fi
fi fi
if test "$HAVE_CXX11" != "1" ; then for ac_header in type_traits tr1/type_traits
for ac_header in type_traits tr1/type_traits
do : do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
@@ -18451,13 +18452,10 @@ fi
done done
else
$as_echo "#define HAVE_TYPE_TRAITS 1" >>confdefs.h
fi fi
if test -n "$GCC"; then if test -n "$GCC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins" >&5
$as_echo_n "checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins... " >&6; } $as_echo_n "checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins... " >&6; }
@@ -18836,6 +18834,8 @@ $as_echo "no" >&6; }
fi fi
fi fi
if test "$HAVE_CXX11" != "1" ; then
ac_ext=cpp ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS' ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -18964,6 +18964,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
if test "$wxUSE_REGEX" != "no"; then if test "$wxUSE_REGEX" != "no"; then

View File

@@ -1669,12 +1669,6 @@ fi
dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling) dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
WX_C_BIGENDIAN WX_C_BIGENDIAN
dnl check for iostream (as opposed to iostream.h) standard header
WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
dnl check whether C++ compiler supports explicit keyword
WX_CPP_EXPLICIT
dnl With Sun CC, temporaries have block scope by default. This flag is needed dnl With Sun CC, temporaries have block scope by default. This flag is needed
dnl to get the expression scope behaviour that conforms to the standard. dnl to get the expression scope behaviour that conforms to the standard.
if test "x$SUNCXX" = xyes; then if test "x$SUNCXX" = xyes; then
@@ -1772,6 +1766,16 @@ if test "x$COMPAQCXX" = "xyes"; then
CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit" CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
fi fi
dnl The checks below are for ancient compilers and are unnecessary when using
dnl C++11.
if test "$HAVE_CXX11" != "1" ; then
dnl check for iostream (as opposed to iostream.h) standard header
WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
dnl check whether C++ compiler supports explicit keyword
WX_CPP_EXPLICIT
dnl the next few tests are all for C++ features and so need to be done using dnl the next few tests are all for C++ features and so need to be done using
dnl C++ compiler dnl C++ compiler
AC_LANG_PUSH(C++) AC_LANG_PUSH(C++)
@@ -1985,18 +1989,9 @@ if test "$wxUSE_STL" = "yes"; then
fi fi
fi fi
dnl Check for type_traits header if necessary: we know that it's always present AC_CHECK_HEADERS([type_traits tr1/type_traits], break, [], [AC_INCLUDES_DEFAULT()])
dnl in C++11 mode. Also notice that it's important to pass AC_INCLUDES_DEFAULT()
dnl as the last argument because otherwise autoconf would perform the check fi dnl End of pre-C++11 only checks section
dnl using both the compiler and the preprocessor and the latter could fail if
dnl the preprocessor is not in C++11 mode, resulting in a warning when running
dnl configure, while providing this argument allows to skip the preprocessor
dnl check.
if test "$HAVE_CXX11" != "1" ; then
AC_CHECK_HEADERS([type_traits tr1/type_traits], break, [], [AC_INCLUDES_DEFAULT()])
else
AC_DEFINE(HAVE_TYPE_TRAITS)
fi
dnl check for atomic operations builtins for wx/atomic.h: dnl check for atomic operations builtins for wx/atomic.h:
WX_ATOMIC_BUILTINS WX_ATOMIC_BUILTINS
@@ -2227,6 +2222,8 @@ else
fi fi
fi fi
if test "$HAVE_CXX11" != "1" ; then
dnl check for C99 string to long long conversion functions, assume that if we dnl check for C99 string to long long conversion functions, assume that if we
dnl have the unsigned variants, then we have the signed ones as well dnl have the unsigned variants, then we have the signed ones as well
dnl dnl
@@ -2240,6 +2237,8 @@ else
fi fi
AC_LANG_POP() AC_LANG_POP()
fi dnl End of pre-C++11 only checks section
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
dnl Optional libraries dnl Optional libraries
dnl dnl

View File

@@ -340,7 +340,9 @@ typedef short int WXTYPE;
#define wxConstCast(obj, className) wx_const_cast(className *, obj) #define wxConstCast(obj, className) wx_const_cast(className *, obj)
#ifndef HAVE_STD_WSTRING #ifndef HAVE_STD_WSTRING
#if defined(__VISUALC__) #if __cplusplus >= 201103L
#define HAVE_STD_WSTRING
#elif defined(__VISUALC__)
#define HAVE_STD_WSTRING #define HAVE_STD_WSTRING
#elif defined(__MINGW32__) #elif defined(__MINGW32__)
#define HAVE_STD_WSTRING #define HAVE_STD_WSTRING
@@ -348,7 +350,9 @@ typedef short int WXTYPE;
#endif #endif
#ifndef HAVE_STD_STRING_COMPARE #ifndef HAVE_STD_STRING_COMPARE
#if defined(__VISUALC__) #if __cplusplus >= 201103L
#define HAVE_STD_STRING_COMPARE
#elif defined(__VISUALC__)
#define HAVE_STD_STRING_COMPARE #define HAVE_STD_STRING_COMPARE
#elif defined(__MINGW32__) || defined(__CYGWIN32__) #elif defined(__MINGW32__) || defined(__CYGWIN32__)
#define HAVE_STD_STRING_COMPARE #define HAVE_STD_STRING_COMPARE

View File

@@ -183,6 +183,16 @@ extern unsigned long android_wcstoul(const wchar_t *nptr, wchar_t **endptr, int
#define wxCRT_StrtollW _wcstoi64 #define wxCRT_StrtollW _wcstoi64
#define wxCRT_StrtoullW _wcstoui64 #define wxCRT_StrtoullW _wcstoui64
#else #else
/* Both of these functions are implemented in C++11 compilers */
#if defined(__cplusplus) && __cplusplus >= 201103L
#ifndef HAVE_STRTOULL
#define HAVE_STRTOULL
#endif
#ifndef HAVE_WCSTOULL
#define HAVE_WCSTOULL
#endif
#endif
#ifdef HAVE_STRTOULL #ifdef HAVE_STRTOULL
#define wxCRT_StrtollA strtoll #define wxCRT_StrtollA strtoll
#define wxCRT_StrtoullA strtoull #define wxCRT_StrtoullA strtoull