From 01684023895926ab05098daeb595bc6113656e10 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 12 Jun 2008 18:51:50 +0000 Subject: [PATCH] don't test for hash_{map,set} classes if we have unordered_map git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- configure | 227 ++++++++++++++++++++++++++------------------------- configure.in | 77 ++++++++--------- 2 files changed, 153 insertions(+), 151 deletions(-) diff --git a/configure b/configure index cca60f8bd8..4bd091fa51 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in 53976 2008-06-04 10:53:02Z SN . +# From configure.in Id: configure.in 54169 2008-06-12 18:43:41Z VZ . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0. # @@ -24698,9 +24698,20 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for hash_map" >&5 -echo $ECHO_N "checking for hash_map... $ECHO_C" >&6; } -if test "${ac_cv_header_hash_map+set}" = set; then + if test "$wx_cv_class_gnuhashmapset" = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_EXT_HASH_MAP 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_GNU_CXX_HASH_MAP 1 +_ACEOF + + fi + + { echo "$as_me:$LINENO: checking for unordered_map" >&5 +echo $ECHO_N "checking for unordered_map... $ECHO_C" >&6; } +if test "${ac_cv_header_unordered_map+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -24712,7 +24723,7 @@ cat >>conftest.$ac_ext <<_ACEOF -#include +#include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" @@ -24731,22 +24742,22 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_header_hash_map=yes + ac_cv_header_unordered_map=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_header_hash_map=no + ac_cv_header_unordered_map=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_hash_map" >&5 -echo "${ECHO_T}$ac_cv_header_hash_map" >&6; } -if test $ac_cv_header_hash_map = yes; then - { echo "$as_me:$LINENO: checking for standard hash_map and hash_set" >&5 -echo $ECHO_N "checking for standard hash_map and hash_set... $ECHO_C" >&6; } -if test "${wx_cv_class_stdhashmapset+set}" = set; then +{ echo "$as_me:$LINENO: result: $ac_cv_header_unordered_map" >&5 +echo "${ECHO_T}$ac_cv_header_unordered_map" >&6; } +if test $ac_cv_header_unordered_map = yes; then + { echo "$as_me:$LINENO: checking for unordered_map and unordered_set in std" >&5 +echo $ECHO_N "checking for unordered_map and unordered_set in std... $ECHO_C" >&6; } +if test "${wx_cv_class_stdunorderedmapset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -24755,13 +24766,13 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - #include +#include + #include int main () { -std::hash_map, std::equal_to > test1; - std::hash_set, std::equal_to > test2; +std::unordered_map test1; + std::unordered_set test2; ; return 0; } @@ -24783,38 +24794,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - wx_cv_class_stdhashmapset=yes + wx_cv_class_stdunorderedmapset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - wx_cv_class_stdhashmapset=no + wx_cv_class_stdunorderedmapset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $wx_cv_class_stdhashmapset" >&5 -echo "${ECHO_T}$wx_cv_class_stdhashmapset" >&6; } +{ echo "$as_me:$LINENO: result: $wx_cv_class_stdunorderedmapset" >&5 +echo "${ECHO_T}$wx_cv_class_stdunorderedmapset" >&6; } fi - if test "$wx_cv_class_stdhashmapset" = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_HASH_MAP 1 + if test "$wx_cv_class_stdunorderedmapset" = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_STD_UNORDERED_MAP 1 _ACEOF - cat >>confdefs.h <<\_ACEOF -#define HAVE_STD_HASH_MAP 1 + cat >>confdefs.h <<\_ACEOF +#define HAVE_STD_UNORDERED_SET 1 _ACEOF - fi - - { echo "$as_me:$LINENO: checking for ext/hash_map" >&5 -echo $ECHO_N "checking for ext/hash_map... $ECHO_C" >&6; } -if test "${ac_cv_header_ext_hash_map+set}" = set; then + else + { echo "$as_me:$LINENO: checking for tr1/unordered_map" >&5 +echo $ECHO_N "checking for tr1/unordered_map... $ECHO_C" >&6; } +if test "${ac_cv_header_tr1_unordered_map+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -24826,7 +24836,7 @@ cat >>conftest.$ac_ext <<_ACEOF -#include +#include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" @@ -24845,22 +24855,22 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_header_ext_hash_map=yes + ac_cv_header_tr1_unordered_map=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_header_ext_hash_map=no + ac_cv_header_tr1_unordered_map=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_ext_hash_map" >&5 -echo "${ECHO_T}$ac_cv_header_ext_hash_map" >&6; } -if test $ac_cv_header_ext_hash_map = yes; then - { echo "$as_me:$LINENO: checking for GNU hash_map and hash_set" >&5 -echo $ECHO_N "checking for GNU hash_map and hash_set... $ECHO_C" >&6; } -if test "${wx_cv_class_gnuhashmapset+set}" = set; then +{ echo "$as_me:$LINENO: result: $ac_cv_header_tr1_unordered_map" >&5 +echo "${ECHO_T}$ac_cv_header_tr1_unordered_map" >&6; } +if test $ac_cv_header_tr1_unordered_map = yes; then + { echo "$as_me:$LINENO: checking for unordered_map and unordered_set in std::tr1" >&5 +echo $ECHO_N "checking for unordered_map and unordered_set in std::tr1... $ECHO_C" >&6; } +if test "${wx_cv_class_tr1unorderedmapset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -24869,13 +24879,16 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - #include +#include + #include int main () { -__gnu_cxx::hash_map, std::equal_to > test1; - __gnu_cxx::hash_set, std::equal_to > test2; +std::tr1::unordered_map test1; + std::tr1::unordered_set test2; + #if defined(__GNUC__) && (__GNUC__==4) && (__GNUC_MINOR__<2) + #error can't use unordered_{map,set} with gcc-4.[01]: http://gcc.gnu.org/PR24389 + #endif ; return 0; } @@ -24897,38 +24910,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - wx_cv_class_gnuhashmapset=yes + wx_cv_class_tr1unorderedmapset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - wx_cv_class_gnuhashmapset=no + wx_cv_class_tr1unorderedmapset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $wx_cv_class_gnuhashmapset" >&5 -echo "${ECHO_T}$wx_cv_class_gnuhashmapset" >&6; } +{ echo "$as_me:$LINENO: result: $wx_cv_class_tr1unorderedmapset" >&5 +echo "${ECHO_T}$wx_cv_class_tr1unorderedmapset" >&6; } fi - if test "$wx_cv_class_gnuhashmapset" = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_EXT_HASH_MAP 1 + if test "$wx_cv_class_tr1unorderedmapset" = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_TR1_UNORDERED_MAP 1 _ACEOF - cat >>confdefs.h <<\_ACEOF -#define HAVE_GNU_CXX_HASH_MAP 1 + cat >>confdefs.h <<\_ACEOF +#define HAVE_TR1_UNORDERED_SET 1 _ACEOF - fi - - { echo "$as_me:$LINENO: checking for unordered_map" >&5 -echo $ECHO_N "checking for unordered_map... $ECHO_C" >&6; } -if test "${ac_cv_header_unordered_map+set}" = set; then + else + { echo "$as_me:$LINENO: checking for hash_map" >&5 +echo $ECHO_N "checking for hash_map... $ECHO_C" >&6; } +if test "${ac_cv_header_hash_map+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -24940,7 +24952,7 @@ cat >>conftest.$ac_ext <<_ACEOF -#include +#include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" @@ -24959,22 +24971,22 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_header_unordered_map=yes + ac_cv_header_hash_map=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_header_unordered_map=no + ac_cv_header_hash_map=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_unordered_map" >&5 -echo "${ECHO_T}$ac_cv_header_unordered_map" >&6; } -if test $ac_cv_header_unordered_map = yes; then - { echo "$as_me:$LINENO: checking for unordered_map and unordered_set in std" >&5 -echo $ECHO_N "checking for unordered_map and unordered_set in std... $ECHO_C" >&6; } -if test "${wx_cv_class_stdunorderedmapset+set}" = set; then +{ echo "$as_me:$LINENO: result: $ac_cv_header_hash_map" >&5 +echo "${ECHO_T}$ac_cv_header_hash_map" >&6; } +if test $ac_cv_header_hash_map = yes; then + { echo "$as_me:$LINENO: checking for std::hash_map and hash_set" >&5 +echo $ECHO_N "checking for std::hash_map and hash_set... $ECHO_C" >&6; } +if test "${wx_cv_class_stdhashmapset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -24983,13 +24995,13 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - #include +#include + #include int main () { -std::unordered_map test1; - std::unordered_set test2; +std::hash_map, std::equal_to > test1; + std::hash_set, std::equal_to > test2; ; return 0; } @@ -25011,37 +25023,38 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - wx_cv_class_stdunorderedmapset=yes + wx_cv_class_stdhashmapset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - wx_cv_class_stdunorderedmapset=no + wx_cv_class_stdhashmapset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $wx_cv_class_stdunorderedmapset" >&5 -echo "${ECHO_T}$wx_cv_class_stdunorderedmapset" >&6; } +{ echo "$as_me:$LINENO: result: $wx_cv_class_stdhashmapset" >&5 +echo "${ECHO_T}$wx_cv_class_stdhashmapset" >&6; } fi - if test "$wx_cv_class_stdunorderedmapset" = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_STD_UNORDERED_MAP 1 + if test "$wx_cv_class_stdhashmapset" = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_HASH_MAP 1 _ACEOF - cat >>confdefs.h <<\_ACEOF -#define HAVE_STD_UNORDERED_SET 1 + cat >>confdefs.h <<\_ACEOF +#define HAVE_STD_HASH_MAP 1 _ACEOF - else - { echo "$as_me:$LINENO: checking for tr1/unordered_map" >&5 -echo $ECHO_N "checking for tr1/unordered_map... $ECHO_C" >&6; } -if test "${ac_cv_header_tr1_unordered_map+set}" = set; then + fi + + { echo "$as_me:$LINENO: checking for ext/hash_map" >&5 +echo $ECHO_N "checking for ext/hash_map... $ECHO_C" >&6; } +if test "${ac_cv_header_ext_hash_map+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -25053,7 +25066,7 @@ cat >>conftest.$ac_ext <<_ACEOF -#include +#include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" @@ -25072,22 +25085,22 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_header_tr1_unordered_map=yes + ac_cv_header_ext_hash_map=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_header_tr1_unordered_map=no + ac_cv_header_ext_hash_map=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_tr1_unordered_map" >&5 -echo "${ECHO_T}$ac_cv_header_tr1_unordered_map" >&6; } -if test $ac_cv_header_tr1_unordered_map = yes; then - { echo "$as_me:$LINENO: checking for unordered_map and unordered_set in std::tr1" >&5 -echo $ECHO_N "checking for unordered_map and unordered_set in std::tr1... $ECHO_C" >&6; } -if test "${wx_cv_class_tr1unorderedmapset+set}" = set; then +{ echo "$as_me:$LINENO: result: $ac_cv_header_ext_hash_map" >&5 +echo "${ECHO_T}$ac_cv_header_ext_hash_map" >&6; } +if test $ac_cv_header_ext_hash_map = yes; then + { echo "$as_me:$LINENO: checking for GNU hash_map and hash_set" >&5 +echo $ECHO_N "checking for GNU hash_map and hash_set... $ECHO_C" >&6; } +if test "${wx_cv_class_gnuhashmapset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -25096,16 +25109,13 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - #include +#include + #include int main () { -std::tr1::unordered_map test1; - std::tr1::unordered_set test2; - #if defined(__GNUC__) && (__GNUC__==4) && (__GNUC_MINOR__<2) - #error can't use unordered_{map,set} with gcc-4.[01]: http://gcc.gnu.org/PR24389 - #endif +__gnu_cxx::hash_map, std::equal_to > test1; + __gnu_cxx::hash_set, std::equal_to > test2; ; return 0; } @@ -25127,33 +25137,24 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - wx_cv_class_tr1unorderedmapset=yes + wx_cv_class_gnuhashmapset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - wx_cv_class_tr1unorderedmapset=no + wx_cv_class_gnuhashmapset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $wx_cv_class_tr1unorderedmapset" >&5 -echo "${ECHO_T}$wx_cv_class_tr1unorderedmapset" >&6; } +{ echo "$as_me:$LINENO: result: $wx_cv_class_gnuhashmapset" >&5 +echo "${ECHO_T}$wx_cv_class_gnuhashmapset" >&6; } fi - if test "$wx_cv_class_tr1unorderedmapset" = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TR1_UNORDERED_MAP 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -#define HAVE_TR1_UNORDERED_SET 1 -_ACEOF - fi fi fi diff --git a/configure.in b/configure.in index 105efec4a9..f1a524559f 100644 --- a/configure.in +++ b/configure.in @@ -1914,42 +1914,6 @@ if test "$wxUSE_STL" = "yes"; then AC_DEFINE(HAVE_STD_STRING_COMPARE) fi - dnl check for hash_map and hash_set headers - AC_CHECK_HEADER([hash_map], - [AC_CACHE_CHECK([for standard hash_map and hash_set], - wx_cv_class_stdhashmapset, - [AC_TRY_COMPILE([#include - #include ], - [std::hash_map, std::equal_to > test1; - std::hash_set, std::equal_to > test2;], - wx_cv_class_stdhashmapset=yes, - wx_cv_class_stdhashmapset=no) - ] - )], - [], - [ ] - ) - - if test "$wx_cv_class_stdhashmapset" = yes; then - AC_DEFINE(HAVE_HASH_MAP) - AC_DEFINE(HAVE_STD_HASH_MAP) - fi - - AC_CHECK_HEADER([ext/hash_map], - [AC_CACHE_CHECK([for GNU hash_map and hash_set], - wx_cv_class_gnuhashmapset, - [AC_TRY_COMPILE([#include - #include ], - [__gnu_cxx::hash_map, std::equal_to > test1; - __gnu_cxx::hash_set, std::equal_to > test2;], - wx_cv_class_gnuhashmapset=yes, - wx_cv_class_gnuhashmapset=no) - ] - )], - [], - [ ] - ) - if test "$wx_cv_class_gnuhashmapset" = yes; then AC_DEFINE(HAVE_EXT_HASH_MAP) AC_DEFINE(HAVE_GNU_CXX_HASH_MAP) @@ -1993,8 +1957,45 @@ if test "$wxUSE_STL" = "yes"; then ) if test "$wx_cv_class_tr1unorderedmapset" = yes; then - AC_DEFINE(HAVE_TR1_UNORDERED_MAP) - AC_DEFINE(HAVE_TR1_UNORDERED_SET) + AC_DEFINE(HAVE_TR1_UNORDERED_MAP) + AC_DEFINE(HAVE_TR1_UNORDERED_SET) + else + dnl check for hash_map and hash_set headers + AC_CHECK_HEADER([hash_map], + [AC_CACHE_CHECK([for std::hash_map and hash_set], + wx_cv_class_stdhashmapset, + [AC_TRY_COMPILE([#include + #include ], + [std::hash_map, std::equal_to > test1; + std::hash_set, std::equal_to > test2;], + wx_cv_class_stdhashmapset=yes, + wx_cv_class_stdhashmapset=no) + ] + )], + [], + [ ] + ) + + if test "$wx_cv_class_stdhashmapset" = yes; then + AC_DEFINE(HAVE_HASH_MAP) + AC_DEFINE(HAVE_STD_HASH_MAP) + fi + + AC_CHECK_HEADER([ext/hash_map], + [AC_CACHE_CHECK([for GNU hash_map and hash_set], + wx_cv_class_gnuhashmapset, + [AC_TRY_COMPILE([#include + #include ], + [__gnu_cxx::hash_map, std::equal_to > test1; + __gnu_cxx::hash_set, std::equal_to > test2;], + wx_cv_class_gnuhashmapset=yes, + wx_cv_class_gnuhashmapset=no) + ] + )], + [], + [ ] + ) + fi fi fi -- 2.47.2