2009-10-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Fix AC_OPENMP configure message for non-C compilers.
+ * lib/autoconf/lang.m4 (AC_LANG_DEFINE): Accept as additional
+ fourth arg the compiler variable name, defined in _AC_CC($1).
+ (_AC_CC): New language dispatch macro.
+ * lib/autoconf/erlang.m4 (AC_LANG(Erlang)): Adjust.
+ * lib/autoconf/fortran.m4 (AC_LANG(Fortran 77), AC_LANG(Fortran)):
+ Likewise.
+ * lib/autoconf/c.m4 (AC_LANG(C), AC_LANG(C++))
+ (AC_LANG(Objective C), AC_LANG(Objective C++)): Likewise.
+ (AC_OPENMP): Use _AC_CC instead of $CC.
+
Do not fail OpenMP tests on systems without aclocal.
* tests/c.at (AC_OPENMP and C, AC_OPENMP and C++): Override
`ACLOCAL=true' for autoreconf, the tests don't need aclocal.
# AC_LANG(C)
# ----------
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-AC_LANG_DEFINE([C], [c], [C], [],
+AC_LANG_DEFINE([C], [c], [C], [CC], [],
[ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
# AC_LANG(C++)
# ------------
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-AC_LANG_DEFINE([C++], [cxx], [CXX], [C],
+AC_LANG_DEFINE([C++], [cxx], [CXX], [CXX], [C],
[ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
# AC_LANG(Objective C)
# --------------------
-AC_LANG_DEFINE([Objective C], [objc], [OBJC], [C],
+AC_LANG_DEFINE([Objective C], [objc], [OBJC], [OBJC], [C],
[ac_ext=m
ac_cpp='$OBJCPP $CPPFLAGS'
ac_compile='$OBJC -c $OBJCFLAGS $CPPFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
# AC_LANG(Objective C++)
# ----------------------
-AC_LANG_DEFINE([Objective C++], [objcxx], [OBJCXX], [C++],
+AC_LANG_DEFINE([Objective C++], [objcxx], [OBJCXX], [OBJCXX], [C++],
[ac_ext=mm
ac_cpp='$OBJCXXCPP $CPPFLAGS'
ac_compile='$OBJCXX -c $OBJCXXFLAGS $CPPFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
AC_ARG_ENABLE([openmp],
[AS_HELP_STRING([--disable-openmp], [do not use OpenMP])])
if test "$enable_openmp" != no; then
- AC_CACHE_CHECK([for $CC option to support OpenMP],
+ AC_CACHE_CHECK([for $[]_AC_CC[] option to support OpenMP],
[ac_cv_prog_[]_AC_LANG_ABBREV[]_openmp],
[AC_LINK_IFELSE([_AC_LANG_OPENMP],
[ac_cv_prog_[]_AC_LANG_ABBREV[]_openmp='none needed'],
# AC_LANG(Erlang)
# ---------------
-AC_LANG_DEFINE([Erlang], [erl], [ERL], [],
+AC_LANG_DEFINE([Erlang], [erl], [ERL], [ERLC], [],
[ac_ext=erl
ac_compile='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD && echo "[#]!/bin/sh" > conftest$ac_exeext && AS_ECHO(["\"$ERL\" -run conftest start -run init stop -noshell"]) >> conftest$ac_exeext && chmod +x conftest$ac_exeext'
# AC_LANG(Fortran 77)
# -------------------
-AC_LANG_DEFINE([Fortran 77], [f77], [F], [],
+AC_LANG_DEFINE([Fortran 77], [f77], [F], [F77], [],
[ac_ext=f
ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'
# AC_LANG(Fortran)
# ----------------
-AC_LANG_DEFINE([Fortran], [fc], [FC], [Fortran 77],
+AC_LANG_DEFINE([Fortran], [fc], [FC], [FC], [Fortran 77],
[ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'
-# AC_LANG_DEFINE(NAME, ABBREV, PREFIX, COPY-FROM, SHELL-VARS)
-# -----------------------------------------------------------
+# AC_LANG_DEFINE(NAME, ABBREV, PREFIX, COMPILER-VAR, COPY-FROM, SHELL-VARS)
+# -------------------------------------------------------------------------
# Define a language referenced by AC_LANG(NAME), with cache variable prefix
-# ABBREV and Makefile variable prefix PREFIX. AC_LANG(NAME) is defined
-# to SHELL-VARS, other macros are copied from language COPY-FROM. Even if
-# COPY-FROM is empty, a default definition is provided for language-specific
-# macros AC_LANG_SOURCE(NAME) and AC_LANG_CONFTEST(NAME).
+# ABBREV, Makefile variable prefix PREFIX and compiler variable COMPILER-VAR.
+# AC_LANG(NAME) is defined to SHELL-VARS, other macros are copied from language
+# COPY-FROM. Even if COPY-FROM is empty, a default definition is provided for
+# language-specific macros AC_LANG_SOURCE(NAME) and AC_LANG_CONFTEST(NAME).
m4_define([AC_LANG_DEFINE],
-[m4_define([AC_LANG($1)], [$5])]
+[m4_define([AC_LANG($1)], [$6])]
[m4_define([_AC_LANG_ABBREV($1)], [$2])]
[m4_define([_AC_LANG_PREFIX($1)], [$3])]
-[m4_copy([AC_LANG_CONFTEST($4)], [AC_LANG_CONFTEST($1)])]
-[m4_copy([AC_LANG_SOURCE($4)], [AC_LANG_SOURCE($1)])]
-[m4_copy([_AC_LANG_NULL_PROGRAM($4)], [_AC_LANG_NULL_PROGRAM($1)])]
-[m4_ifval([$4],
-[m4_copy([AC_LANG_PROGRAM($4)], [AC_LANG_PROGRAM($1)])]
-[m4_copy([AC_LANG_CALL($4)], [AC_LANG_CALL($1)])]
-[m4_copy([AC_LANG_FUNC_LINK_TRY($4)], [AC_LANG_FUNC_LINK_TRY($1)])]
-[m4_copy([AC_LANG_BOOL_COMPILE_TRY($4)], [AC_LANG_BOOL_COMPILE_TRY($1)])]
-[m4_copy([AC_LANG_INT_SAVE($4)], [AC_LANG_INT_SAVE($1)])]
-[m4_copy([_AC_LANG_IO_PROGRAM($4)], [_AC_LANG_IO_PROGRAM($1)])])])
+[m4_define([_AC_CC($1)], [$4])]
+[m4_copy([AC_LANG_CONFTEST($5)], [AC_LANG_CONFTEST($1)])]
+[m4_copy([AC_LANG_SOURCE($5)], [AC_LANG_SOURCE($1)])]
+[m4_copy([_AC_LANG_NULL_PROGRAM($5)], [_AC_LANG_NULL_PROGRAM($1)])]
+[m4_ifval([$5],
+[m4_copy([AC_LANG_PROGRAM($5)], [AC_LANG_PROGRAM($1)])]
+[m4_copy([AC_LANG_CALL($5)], [AC_LANG_CALL($1)])]
+[m4_copy([AC_LANG_FUNC_LINK_TRY($5)], [AC_LANG_FUNC_LINK_TRY($1)])]
+[m4_copy([AC_LANG_BOOL_COMPILE_TRY($5)], [AC_LANG_BOOL_COMPILE_TRY($1)])]
+[m4_copy([AC_LANG_INT_SAVE($5)], [AC_LANG_INT_SAVE($1)])]
+[m4_copy([_AC_LANG_IO_PROGRAM($5)], [_AC_LANG_IO_PROGRAM($1)])])])
## ----------------------- ##
## 2. Producing programs. ##
[_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])
+# _AC_CC
+# ------
+# The variable name of the compiler.
+m4_define([_AC_CC],
+[_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])
+
## -------------------------------------------- ##
## 3. Looking for Compilers and Preprocessors. ##