Don't rely on the g++ version to include tr1/unordered_map and co.
The previous setup failed with clang++ 3.0. * m4/stl.m4: New file. * configure.ac: Call AC_HEADER_UNORDERED_MAP, AC_HEADER_TR1_UNORDERED_MAP, and AC_HEADER_EXT_HASH_MAP. * src/misc/hash.hh: Include _config.h, and used the SPOT_HAVE_UNORDERED_MAP, SPOT_HAVE_TR1_UNORDERED_MAP, or SPOT_HAVE_EXT_HASH_MAP defines to decide which file to include.
This commit is contained in:
parent
a804c88e1b
commit
9679032510
4 changed files with 105 additions and 27 deletions
51
m4/stl.m4
Normal file
51
m4/stl.m4
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
|
||||
AC_DEFUN([AC_HEADER_EXT_HASH_MAP], [
|
||||
AC_CACHE_CHECK([for ext/hash_map],
|
||||
[ac_cv_cxx_ext_hash_map],
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS -Werror"
|
||||
AC_TRY_COMPILE([#include <ext/hash_map>], [using __gnu_cxx::hash_map;],
|
||||
[ac_cv_cxx_ext_hash_map=yes], [ac_cv_cxx_ext_hash_map=no])
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
AC_LANG_RESTORE
|
||||
])
|
||||
if test "$ac_cv_cxx_ext_hash_map" = yes; then
|
||||
AC_DEFINE([HAVE_EXT_HASH_MAP],, [Define if ext/hash_map is present.])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([AC_HEADER_TR1_UNORDERED_MAP], [
|
||||
AC_CACHE_CHECK([for tr1/unordered_map],
|
||||
[ac_cv_cxx_tr1_unordered_map],
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS -Werror"
|
||||
AC_TRY_COMPILE([#include <tr1/unordered_map>], [using std::tr1::unordered_map;],
|
||||
[ac_cv_cxx_tr1_unordered_map=yes], [ac_cv_cxx_tr1_unordered_map=no])
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
AC_LANG_RESTORE
|
||||
])
|
||||
if test "$ac_cv_cxx_tr1_unordered_map" = yes; then
|
||||
AC_DEFINE([HAVE_TR1_UNORDERED_MAP],, [Define if tr1/unordered_map is present.])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([AC_HEADER_UNORDERED_MAP], [
|
||||
AC_CACHE_CHECK([for unordered_map],
|
||||
[ac_cv_cxx_unordered_map],
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS -Werror"
|
||||
AC_TRY_COMPILE([#include <unordered_map>], [using std::unordered_map;],
|
||||
[ac_cv_cxx_unordered_map=yes], [ac_cv_cxx_unordered_map=no])
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
AC_LANG_RESTORE
|
||||
])
|
||||
if test "$ac_cv_cxx_unordered_map" = yes; then
|
||||
AC_DEFINE([HAVE_UNORDERED_MAP],, [Define if unordered_map is present.])
|
||||
fi
|
||||
])
|
||||
Loading…
Add table
Add a link
Reference in a new issue