blob: cc233a509416d6b8af4e04b9dc9dd041a6ebc3c6 [file] [log] [blame]
Reid Spencerb15e69a2004-09-07 06:56:14 +00001# Check for hash_map extension. This is from
2# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_map.html
3AC_DEFUN([AC_CXX_HAVE_STD_EXT_HASH_MAP],
4[AC_CACHE_CHECK([whether the compiler has <ext/hash_map> defining template class std::hash_map],
5 ac_cv_cxx_have_std_ext_hash_map,
6 [AC_REQUIRE([AC_CXX_NAMESPACES])
Reid Spencer70eca352004-09-19 22:31:49 +00007 AC_LANG_PUSH([C++])
8 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_map>
Reid Spencerb15e69a2004-09-07 06:56:14 +00009#ifdef HAVE_NAMESPACES
10using namespace std;
Reid Spencer70eca352004-09-19 22:31:49 +000011#endif]], [[hash_map<int, int> t;]])],[ac_cv_cxx_have_std_ext_hash_map=yes],[ac_cv_cxx_have_std_ext_hash_map=no])
12 AC_LANG_POP([C++])])
Reid Spencerb15e69a2004-09-07 06:56:14 +000013 HAVE_STD_EXT_HASH_MAP=0
14 if test "$ac_cv_cxx_have_std_ext_hash_map" = yes
15 then
16 HAVE_STD_EXT_HASH_MAP=1
17 fi
18 AC_SUBST(HAVE_STD_EXT_HASH_MAP)])
19
20AC_DEFUN([AC_CXX_HAVE_GNU_EXT_HASH_MAP],
21[AC_CACHE_CHECK([whether the compiler has <ext/hash_map> defining template class __gnu_cxx::hash_map],
22 ac_cv_cxx_have_gnu_ext_hash_map,
23 [AC_REQUIRE([AC_CXX_NAMESPACES])
Reid Spencer70eca352004-09-19 22:31:49 +000024 AC_LANG_PUSH([C++])
25 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_map>
Reid Spencerb15e69a2004-09-07 06:56:14 +000026#ifdef HAVE_NAMESPACES
27using namespace __gnu_cxx;
Reid Spencer70eca352004-09-19 22:31:49 +000028#endif]], [[hash_map<int,int> t; ]])],[ac_cv_cxx_have_gnu_ext_hash_map=yes],[ac_cv_cxx_have_gnu_ext_hash_map=no])
29 AC_LANG_POP([C++])])
Reid Spencerb15e69a2004-09-07 06:56:14 +000030 HAVE_GNU_EXT_HASH_MAP=0
31 if test "$ac_cv_cxx_have_gnu_ext_hash_map" = yes
32 then
33 HAVE_GNU_EXT_HASH_MAP=1
34 fi
35 AC_SUBST(HAVE_GNU_EXT_HASH_MAP)])
36
37AC_DEFUN([AC_CXX_HAVE_GLOBAL_HASH_MAP],
38[AC_CACHE_CHECK([whether the compiler has <hash_map> defining template class ::hash_map],
39 ac_cv_cxx_have_global_hash_map,
40 [AC_REQUIRE([AC_CXX_NAMESPACES])
Reid Spencer70eca352004-09-19 22:31:49 +000041 AC_LANG_PUSH([C++])
42 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <hash_map>]], [[hash_map<int,int> t; ]])],[ac_cv_cxx_have_global_hash_map=yes],[ac_cv_cxx_have_global_hash_map=no])
43 AC_LANG_POP([C++])])
Reid Spencerb15e69a2004-09-07 06:56:14 +000044 HAVE_GLOBAL_HASH_MAP=0
45 if test "$ac_cv_cxx_have_global_hash_map" = yes
46 then
47 HAVE_GLOBAL_HASH_MAP=1
48 fi
49 AC_SUBST(HAVE_GLOBAL_HASH_MAP)])
50
51AC_DEFUN([AC_CXX_HAVE_HASH_MAP],
52[AC_CXX_HAVE_STD_EXT_HASH_MAP
53 AC_CXX_HAVE_GNU_EXT_HASH_MAP
54 AC_CXX_HAVE_GLOBAL_HASH_MAP])
55
56