blob: e9d28bfe35b97c6009b7b8d25c06732316587f77 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001# Check for hash_set extension. This is modified from
2# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
3AC_DEFUN([AC_CXX_HAVE_STD_EXT_HASH_SET],
4[AC_CACHE_CHECK([whether the compiler has <ext/hash_set> defining template class std::hash_set],
5 ac_cv_cxx_have_std_ext_hash_set,
6 [AC_REQUIRE([AC_CXX_NAMESPACES])
7 AC_LANG_PUSH([C++])
8 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_set>
9#ifdef HAVE_NAMESPACES
10using namespace std;
11#endif]], [[hash_set<int> t; ]])],[ac_cv_cxx_have_std_ext_hash_set=yes],[ac_cv_cxx_have_std_ext_hash_set=no])
12 AC_LANG_POP([C++])])
13 if test "$ac_cv_cxx_have_std_ext_hash_set" = yes
14 then
15 AC_DEFINE(HAVE_STD_EXT_HASH_SET,1,[Have hash_set in std namespace])
16 else
17 AC_DEFINE(HAVE_STD_EXT_HASH_SET,0,[Does not have hash_set in std namespace])
18 fi
19 ])
20
21AC_DEFUN([AC_CXX_HAVE_GNU_EXT_HASH_SET],
22[AC_CACHE_CHECK(
23 [whether the compiler has <ext/hash_set> defining template class __gnu_cxx::hash_set],
24 ac_cv_cxx_have_gnu_ext_hash_set,
25 [AC_REQUIRE([AC_CXX_NAMESPACES])
26 AC_LANG_PUSH([C++])
27 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ext/hash_set>
28#ifdef HAVE_NAMESPACES
29using namespace __gnu_cxx;
30#endif]], [[hash_set<int> t; ]])],[ac_cv_cxx_have_gnu_ext_hash_set=yes],[ac_cv_cxx_have_gnu_ext_hash_set=no])
31 AC_LANG_POP([C++])])
32 if test "$ac_cv_cxx_have_gnu_ext_hash_set" = yes
33 then
34 AC_DEFINE(HAVE_GNU_EXT_HASH_SET,1,[Have hash_set in gnu namespace])
35 else
36 AC_DEFINE(HAVE_GNU_EXT_HASH_SET,0,[Does not have hash_set in gnu namespace])
37 fi
38 ])
39
40AC_DEFUN([AC_CXX_HAVE_GLOBAL_HASH_SET],
41[AC_CACHE_CHECK([whether the compiler has <hash_set> defining template class ::hash_set],
42 ac_cv_cxx_have_global_hash_set,
43 [AC_REQUIRE([AC_CXX_NAMESPACES])
44 AC_LANG_PUSH([C++])
45 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <hash_set>]], [[hash_set<int> t; return 0;]])],[ac_cv_cxx_have_global_hash_set=yes],[ac_cv_cxx_have_global_hash_set=no])
46 AC_LANG_POP([C++])])
47 if test "$ac_cv_cxx_have_global_hash_set" = yes
48 then
49 AC_DEFINE(HAVE_GLOBAL_HASH_SET,1,[Have hash_set in global namespace])
50 else
51 AC_DEFINE(HAVE_GLOBAL_HASH_SET,0,[Does not have hash_set in global namespace])
52 fi
53 ])
54
55AC_DEFUN([AC_CXX_HAVE_HASH_SET],
56[AC_CXX_HAVE_STD_EXT_HASH_SET
57 AC_CXX_HAVE_GNU_EXT_HASH_SET
58 AC_CXX_HAVE_GLOBAL_HASH_SET])
59
60