AC_LANG([C++])
STEPMAKE_PYTHON(REQUIRED, 2.4)
-STEPMAKE_GCC(REQUIRED, 3.4)
+# this checks if we have GNU C by compiling a program with
+# __GNUC__, but that macro now unofficially means "the compiler
+# supports the GNU C extensions" -- the intel C compiler and clang
+# both support __GNUC__!
+STEPMAKE_GCC_OR_CLANG(REQUIRED, 3.4)
STEPMAKE_CXX(REQUIRED)
-STEPMAKE_GXX(REQUIRED, 3.4)
+STEPMAKE_GXX_OR_CLANG(REQUIRED, 3.4)
+STEPMAKE_GXXCODEGENBUG
STEPMAKE_CXXTEMPLATE
STEPMAKE_STL_DATA_METHOD
STEPMAKE_LIB(REQUIRED)
[#include <libguile.h>])
CXXFLAGS="$save_CXXFLAGS"
+## Check for usable cxxabi
+save_LIBS="$LIBS"
+LIBS="$LIBS $CXXABI_LIBS"
+AC_MSG_CHECKING(for usable C++ demangler)
+AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <cxxabi.h>],
+ [abi::__cxa_demangle ("", 0, 0, 0)])],
+ [AC_DEFINE(HAVE_CXA_DEMANGLE)
+ AC_MSG_RESULT(yes)],[
+ LIBS="$LIBS -lsupc++"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <cxxabi.h>],
+ [abi::__cxa_demangle ("", 0, 0, 0)])],
+ [AC_DEFINE(HAVE_CXA_DEMANGLE)
+ AC_MSG_RESULT([yes, using -lsupc++])
+ CXXABI_LIBS="$CXXABI_LIBS -lsupc++"],
+ [AC_MSG_RESULT([no, use c++filt -t for manual demangling])])])
+LIBS="$save_LIBS"
+AC_SUBST(CXXABI_LIBS)
+
## check rational bugfix.
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$GUILE_CFLAGS $CPPFLAGS"