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_CXXTEMPLATE
STEPMAKE_STL_DATA_METHOD
STEPMAKE_LIB(REQUIRED)
AC_MSG_RESULT($FLEXLEXER_FILE)
])
-AC_DEFUN(STEPMAKE_GCC, [
- if test "$GCC" = "yes"; then
- STEPMAKE_CHECK_VERSION(CC, $1, $2)
- else
- warn="$CC (Please install *GNU* cc)"
- STEPMAKE_ADD_ENTRY($1, $warn)
+AC_DEFUN(STEPMAKE_GCC_OR_CLANG, [
+ STEPMAKE_HAS_CLANG()
+ if test "$HAS_CLANG" = "no"; then
+ if test "$GCC" = "yes"; then
+ STEPMAKE_CHECK_VERSION(CC, $1, $2)
+ else
+ warn="$CC (Please install *GNU* cc)"
+ STEPMAKE_ADD_ENTRY($1, $warn)
+ fi
fi
+ # no else, we're fine with any clang
])
AC_DEFUN(STEPMAKE_GETTEXT, [
AC_CHECK_FUNCS(dlopen)
])
-AC_DEFUN(STEPMAKE_GXX, [
- if test "$GXX" = "yes"; then
- STEPMAKE_CHECK_VERSION(CXX, $1, $2)
- else
- warn="$CXX (Please install *GNU* c++)"
- STEPMAKE_ADD_ENTRY($1, $warn)
+AC_DEFUN(STEPMAKE_HAS_CLANG, [
+ AC_EGREP_CPP(yes,
+ [#ifdef __clang__
+ yes
+ #endif
+ ], HAS_CLANG=yes, HAS_CLANG=no)
+])
+
+AC_DEFUN(STEPMAKE_GXX_OR_CLANG, [
+ STEPMAKE_HAS_CLANG()
+ if test "$HAS_CLANG" = "no"; then
+ if test "$GXX" = "yes"; then
+ STEPMAKE_CHECK_VERSION(CXX, $1, $2)
+ else
+ warn="$CXX (Please install *GNU* c++)"
+ STEPMAKE_ADD_ENTRY($1, $warn)
+ fi
fi
+ # no else, we're fine with any clang
])