]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Fix the passing of $? to ACTION-IF-FAILED in AC_TRY_RUN, that
authorAkim Demaille <akim@epita.fr>
Thu, 27 Sep 2001 13:28:15 +0000 (13:28 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 27 Sep 2001 13:28:15 +0000 (13:28 +0000)
generates too many bug reports.
* lib/autoconf/general.m4 (_AC_RUN_IFELSE): Pass the right exit
status when executing the ACTION-IF-FALSE.
* tests/base.at (AC_TRY_*): Rename as...
(AC_TRY_COMMAND): this.
(AC_RUN_IFELSE): New.
* tests/compile.at (Extensions, C keywords)
(AC_PROG_CPP requires AC_PROG_CC, GNU Fortran 77)
(Broken/missing compilers, AC_PROG_CPP with warnings)
(AC_PROG_CPP without warnings, AC_PROG_CPP via CC): Move to...
* tests/c.at (Extensions, C keywords)
(Broken/missing compilers, AC_PROG_CPP with warnings)
(AC_PROG_CPP without warnings, AC_PROG_CPP via CC)
(AC_PROG_CPP requires AC_PROG_CC): here and...
* tests/fortran.at (GNU Fortran 77): there.
* doc/autoconf.texi (autoconf Invocation): Fix the example:
AC_TRY_RUN is about compilation, not shell commands.
(Test Programs): AC_TRY_RUN works as used to be advertised.

ChangeLog
NEWS
doc/autoconf.texi
lib/autoconf/general.m4
tests/Makefile.am
tests/Makefile.in
tests/base.at
tests/c.at [new file with mode: 0644]
tests/compile.at
tests/fortran.at [new file with mode: 0644]
tests/suite.at

index 2e61489c6a1c6118bd40f2ae04c1224121e2cb6b..d4a20846e4420512e84828d5f952e34291d5cd35 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2001-09-27  Akim Demaille  <akim@epita.fr>
+
+       Fix the passing of $? to ACTION-IF-FAILED in AC_TRY_RUN, that
+       generates too many bug reports.
+
+       * lib/autoconf/general.m4 (_AC_RUN_IFELSE): Pass the right exit
+       status when executing the ACTION-IF-FALSE.
+       * tests/base.at (AC_TRY_*): Rename as...
+       (AC_TRY_COMMAND): this.
+       (AC_RUN_IFELSE): New.
+       * tests/compile.at (Extensions, C keywords)
+       (AC_PROG_CPP requires AC_PROG_CC, GNU Fortran 77)
+       (Broken/missing compilers, AC_PROG_CPP with warnings)
+       (AC_PROG_CPP without warnings, AC_PROG_CPP via CC): Move to...
+       * tests/c.at (Extensions, C keywords)
+       (Broken/missing compilers, AC_PROG_CPP with warnings)
+       (AC_PROG_CPP without warnings, AC_PROG_CPP via CC)
+       (AC_PROG_CPP requires AC_PROG_CC): here and...
+       * tests/fortran.at (GNU Fortran 77): there.
+       * doc/autoconf.texi (autoconf Invocation): Fix the example:
+       AC_TRY_RUN is about compilation, not shell commands.
+       (Test Programs): AC_TRY_RUN works as used to be advertised.
+
 2001-09-27  Akim Demaille  <akim@epita.fr>
 
        * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fix bugs spotted by
diff --git a/NEWS b/NEWS
index 18f3b766a755864d8a448df7f4b37996a2fe90c3..7cdb205ec3f5fdc1fb25fd0589e40affd6e0dd11 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -36,6 +36,8 @@
 
 ** Bug fixes
 - The top level $prefix is propagated to the AC_CONFIG_SUBDIRS configures.
+- AC_TRY_RUN
+  Under the user pressure, $? is finally available.  Probably a mistake.
 
 ** C Macros
 - AC_C_BIGENDIAN supports the cross-compiling case.
index ba0218646510a7a9891e46b1c4824f2ac9ed5edc..983520355e0e6b54dd67ad72199a9da20113e523 100644 (file)
@@ -1214,7 +1214,7 @@ on this @file{configure.ac}:
 
 @example
 AC_DEFUN([INNER],
-[AC_TRY_RUN([true])])
+[AC_TRY_RUN([exit (0)])])
 
 AC_DEFUN([OUTER],
 [INNER])
@@ -5489,9 +5489,7 @@ system while configuring.
 @acindex TRY_RUN
 If @var{program} compiles and links successfully and returns an exit
 status of 0 when executed, run shell commands @var{action-if-true}.
-Otherwise, run shell commands @var{action-if-false}; the exit status of
-the program should be available in the shell variable @samp{$?}, but has
-never been: don't depend on this.
+Otherwise, run shell commands @var{action-if-false}.
 
 This macro double quotes @var{program}, the text of a program in the
 current language (@pxref{Language Choice}), on which shell variable and
@@ -5504,6 +5502,15 @@ the system where @code{configure} is being run, then the test program is
 not run.  If the optional shell commands @var{action-if-cross-compiling}
 are given, they are run instead.  Otherwise, @code{configure} prints
 an error message and exits.
+
+In the @var{action-if-false} section, the exit status of the program is
+available in the shell variable @samp{$?}, but be very careful to limit
+yourself to positive values smaller than 127; bigger values shall be
+saved into a file by the @var{program}.  Note also that you have simply
+no guarantee that this exit status is issued by the @var{program}, or by
+the failure of its compilation.  In other words, use this feature if
+sadist only, it was reestablished because the Autoconf maintainers grew
+tired of receiving ``bug reports''.
 @end defmac
 
 Try to provide a pessimistic default value to use when cross-compiling
index dff6175ebf58b99ecc0067f24bf7bca7945f7778..52b31132735ffbbac65c84f753f314f1aabeb1d8 100644 (file)
@@ -2337,7 +2337,9 @@ AS_IF([AC_TRY_EVAL(ac_link) && AC_TRY_COMMAND(./conftest$ac_exeext)],
       [echo "$as_me: program exited with status $ac_status" >&AS_MESSAGE_LOG_FD
 echo "$as_me: failed program was:" >&AS_MESSAGE_LOG_FD
 cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
-m4_ifvaln([$3], [$3])dnl])[]dnl
+m4_ifvaln([$3],
+          [( exit $ac_status )
+$3])dnl])[]dnl
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext m4_ifval([$1],
                                                      [conftest.$ac_ext])[]dnl
 ])# _AC_RUN_IFELSE
index bc58fe6c411a3ba53fbe92caabe6cf1da1e83738..e57cd849c8d7fe1e01250ee7d558b99c597fb7d1 100644 (file)
@@ -39,7 +39,7 @@ TESTSUITE_HAND_AT = \
        suite.at \
         m4sugar.at m4sh.at \
         base.at tools.at torture.at \
-       compile.at \
+       compile.at c.at fortran.at \
        semantics.at \
        foreign.at
 
index 941f57bfbdf79d295d0832955a1672b66148cfc8..7ea80dd7dd6983825fbfc9e0365754dfd2b095b4 100644 (file)
@@ -87,7 +87,7 @@ TESTSUITE_HAND_AT = \
        suite.at \
         m4sugar.at m4sh.at \
         base.at tools.at torture.at \
-       compile.at \
+       compile.at c.at fortran.at \
        semantics.at \
        foreign.at
 
@@ -129,7 +129,7 @@ CONFIG_CLEAN_FILES = autoconf autoheader autom4te autoreconf autoscan \
        autoupdate ifnames
 DIST_SOURCES =
 DIST_COMMON = README Makefile.am Makefile.in autom4te.in autoreconf.in \
-       autoupdate.in wrappl.in wrapsh.in
+       autoupdate.in configure configure.ac wrappl.in wrapsh.in
 all: all-am
 
 .SUFFIXES:
index 49fc01390b80674b30b4139918ca2d622541fc85..e79cc32f4295def4e89331fd6b7aebcd24194e3b 100644 (file)
@@ -181,42 +181,6 @@ AT_CHECK_CONFIGURE
 AT_CLEANUP
 
 
-## ---------------------- ##
-## AC_REQUIRE & AC_LANG.  ##
-## ---------------------- ##
-
-AT_SETUP([AC_REQUIRE & AC_LANG])
-
-AT_DATA([configure.ac],
-[[AC_DEFUN([AC_F77_1],
-[AC_LANG_PUSH([Fortran 77])
-if test $ac_ext != f; then
-  AC_MSG_ERROR([F77_1: current shell language is $ac_ext, expected Fortran])
-fi
-AC_LANG_POP
-])
-
-
-AC_DEFUN([AC_F77_2],
-[AC_LANG_PUSH([Fortran 77])
-AC_REQUIRE([AC_F77_1])
-if test $ac_ext != f; then
-  AC_MSG_ERROR([F77_2: current shell language is $ac_ext, expected Fortran])
-fi
-AC_LANG_POP
-])
-
-AC_INIT
-AC_F77_2
-AS_EXIT(0)
-]])
-
-AT_CHECK_AUTOCONF
-AT_CHECK_CONFIGURE
-
-AT_CLEANUP
-
-
 ## ---------------- ##
 ## AC_CACHE_CHECK.  ##
 ## ---------------- ##
@@ -238,11 +202,11 @@ AT_CHECK_CONFIGURE([-q])
 AT_CLEANUP
 
 
-## ---------- ##
-## AC_TRY_*.  ##
-## ---------- ##
+## ---------------- ##
+## AC_TRY_COMMAND.  ##
+## ---------------- ##
 
-AT_SETUP([AC_TRY_*])
+AT_SETUP([AC_TRY_COMMAND])
 
 AT_DATA([configure.ac],
 [[AC_INIT
diff --git a/tests/c.at b/tests/c.at
new file mode 100644 (file)
index 0000000..e935de8
--- /dev/null
@@ -0,0 +1,211 @@
+#                                                      -*- Autotest -*-
+
+AT_BANNER([C low level compiling/preprocessing macros.])
+
+# Copyright 2000, 2001 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+
+# Since the macros which compile are required by most tests, check
+# them first.  But remember that looking for a compiler is even more
+# primitive, so check those first.
+
+
+## ------------ ##
+## Extensions.  ##
+## ------------ ##
+
+# As far as we know only `foo', `foo.exe' are possible executable,
+# and `foo.o', `foo.obj' are possible object files.  Autoconf must not
+# know that, but it is OK for the test suite to take this into account.
+AT_CHECK_MACRO([Extensions],
+[[AC_PROG_CC
+case $ac_exeext in
+  '' | '.exe' ) ;;
+  * ) AC_MSG_ERROR([suspicious executable suffix: $ac_exeext]);;
+esac
+
+case $ac_objext in
+  'o' | 'obj' ) ;;
+  * ) AC_MSG_ERROR([suspicious object suffix: $ac_objext]);;
+esac
+AS_EXIT([0])
+]])
+
+
+
+## -------------------------- ##
+## Broken/missing compilers.  ##
+## -------------------------- ##
+
+
+# Check that Autoconf correctly diagnoses broken compilers, and in
+# particular, if it does not exit 77, the test suite is in trouble...
+# FIXME: Once a precise message decided, check stderr of configure.
+AT_SETUP([Broken/missing compilers])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+CC=no-such-compiler
+AC_PROG_CC
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([], 77, ignore, ignore)
+
+AT_CLEANUP
+
+
+## ------------ ##
+## C keywords.  ##
+## ------------ ##
+
+# GCC supports `const', `volatile', and `inline'.
+AT_CHECK_MACRO([C keywords],
+[[AC_PROG_CC
+AC_C_CONST
+AC_C_INLINE
+AC_C_VOLATILE
+case $GCC,$ac_cv_c_const,$ac_cv_c_inline,$ac_cv_c_volatile in
+ yes,*no*)
+   AC_MSG_ERROR([failed to detect `const', `inline' or `volatile' support]);;
+esac
+]])
+
+
+
+## --------------------------------- ##
+## AC_PROG_CPP requires AC_PROG_CC.  ##
+## --------------------------------- ##
+
+# Must invoke AC_PROG_CC.
+AT_CHECK_MACRO([AC_PROG_CPP requires AC_PROG_CC],
+[[AC_PROG_CPP
+test -z "$CC" &&
+   AC_MSG_ERROR([looked for a C preprocessor without looking for a compiler])
+]])
+
+
+
+## --------------------------- ##
+## AC_PROG_CPP with warnings.  ##
+## --------------------------- ##
+
+
+# It's Ok for strict preprocessors to produce warnings.
+
+AT_SETUP([AC_PROG_CPP with warnings])
+
+AT_DATA([mycpp],
+[[#! /bin/sh
+echo noise >&2
+exec ${1+"$@"}
+]])
+
+chmod +x mycpp
+
+_AT_CHECK_AC_MACRO(
+[[AC_PROG_CPP
+# If the preprocessor is not strict, just ignore
+test "x$ac_c_preproc_warn_flag" = xyes &&
+  AC_MSG_ERROR([preprocessor has no warning option], 77)
+CPP="./mycpp $CPP"
+AC_CHECK_HEADERS(stdio.h autoconf_io.h)]])
+
+AT_CHECK_DEFINES(
+[/* #undef HAVE_AUTOCONF_IO_H */
+#define HAVE_STDIO_H 1
+])
+
+AT_CLEANUP
+
+
+## ------------------------------ ##
+## AC_PROG_CPP without warnings.  ##
+## ------------------------------ ##
+
+AT_SETUP([AC_PROG_CPP without warnings])
+
+# Ignore if /lib/cpp doesn't work
+AT_CHECK([/lib/cpp </dev/null || exit 77], [], [ignore], [ignore])
+
+# A cpp which exit status is meaningless.
+AT_DATA([mycpp],
+[[#! /bin/sh
+/lib/cpp ${1+"$@"}
+exit 0
+]])
+
+chmod +x mycpp
+
+_AT_CHECK_AC_MACRO(
+[[CPP=./mycpp
+AC_PROG_CPP
+test "x$ac_c_preproc_warn_flag" != xyes &&
+  AC_MSG_ERROR([failed to detect preprocessor warning option])
+AC_CHECK_HEADERS(stdio.h autoconf_io.h)]])
+
+AT_CHECK_DEFINES(
+[/* #undef HAVE_AUTOCONF_IO_H */
+#define HAVE_STDIO_H 1
+])
+
+AT_CLEANUP
+
+
+
+## -------------------- ##
+## AC_PROG_CPP via CC.  ##
+## -------------------- ##
+
+
+# It's Ok for strict preprocessors to produce warnings.
+
+AT_SETUP([AC_PROG_CPP via CC])
+
+# Ignore if /lib/cpp doesn't work
+AT_CHECK([/lib/cpp </dev/null || exit 77], [], [ignore], [ignore])
+
+AT_DATA([mycc],
+[[#! /bin/sh
+echo "Annoying copyright message" >&2
+exec "$@"
+]])
+
+chmod +x mycc
+
+# We go through the following contortions, in order to have the
+# configure script go down the same codepaths as it would during a
+# normal CPP selection check.  If we explicitly set CPP, it goes down
+# a different codepath.
+_AT_CHECK_AC_MACRO(
+[[AC_PROG_CC
+CC="./mycc $CC"
+AC_PROG_CPP
+# The test $CC compiler should have been selected.
+test "$CPP" != "$CC -E" &&
+  AC_MSG_ERROR([error messages on stderr cause the preprocessor selection to fail])
+
+# Exercise CPP.
+AC_CHECK_HEADERS(stdio.h autoconf_io.h)]])
+
+AT_CHECK_DEFINES(
+[/* #undef HAVE_AUTOCONF_IO_H */
+#define HAVE_STDIO_H 1
+])
+
+AT_CLEANUP
index 32ed80236a85d755131e0bc0d06f771337319e47..0ee210255c209b848df6145dc357e4fb474e2292 100644 (file)
@@ -71,192 +71,75 @@ c
 AT_CLEANUP
 
 
-## ------------ ##
-## Extensions.  ##
-## ------------ ##
+## ---------------------- ##
+## AC_REQUIRE & AC_LANG.  ##
+## ---------------------- ##
 
-# As far as we know only `foo', `foo.exe' are possible executable,
-# and `foo.o', `foo.obj' are possible object files.  Autoconf must not
-# know that, but it is OK for the test suite to take this into account.
-AT_CHECK_MACRO([Extensions],
-[[AC_PROG_CC
-case $ac_exeext in
-  '' | '.exe' ) ;;
-  * ) AC_MSG_ERROR([suspicious executable suffix: $ac_exeext]);;
-esac
-
-case $ac_objext in
-  'o' | 'obj' ) ;;
-  * ) AC_MSG_ERROR([suspicious object suffix: $ac_objext]);;
-esac
-AS_EXIT([0])
-]])
-
-
-
-## -------------------------- ##
-## Broken/missing compilers.  ##
-## -------------------------- ##
-
-
-# Check that Autoconf correctly diagnoses broken compilers, and in
-# particular, if it does not exit 77, the test suite is in trouble...
-# FIXME: Once a precise message decided, check stderr of configure.
-AT_SETUP([Broken/missing compilers])
+AT_SETUP([AC_REQUIRE & AC_LANG])
 
 AT_DATA([configure.ac],
-[[AC_INIT
-CC=no-such-compiler
-AC_PROG_CC
-]])
-
-AT_CHECK_AUTOCONF
-AT_CHECK_CONFIGURE([], 77, ignore, ignore)
-
-AT_CLEANUP
-
-
-## ------------ ##
-## C keywords.  ##
-## ------------ ##
-
-# GCC supports `const', `volatile', and `inline'.
-AT_CHECK_MACRO([C keywords],
-[[AC_PROG_CC
-AC_C_CONST
-AC_C_INLINE
-AC_C_VOLATILE
-case $GCC,$ac_cv_c_const,$ac_cv_c_inline,$ac_cv_c_volatile in
- yes,*no*)
-   AC_MSG_ERROR([failed to detect `const', `inline' or `volatile' support]);;
-esac
-]])
-
-
-
-## --------------------------------- ##
-## AC_PROG_CPP requires AC_PROG_CC.  ##
-## --------------------------------- ##
-
-# Must invoke AC_PROG_CC.
-AT_CHECK_MACRO([AC_PROG_CPP requires AC_PROG_CC],
-[[AC_PROG_CPP
-test -z "$CC" &&
-   AC_MSG_ERROR([looked for a C preprocessor without looking for a compiler])
-]])
-
-
-
-## --------------------------- ##
-## AC_PROG_CPP with warnings.  ##
-## --------------------------- ##
-
-
-# It's Ok for strict preprocessors to produce warnings.
-
-AT_SETUP([AC_PROG_CPP with warnings])
-
-AT_DATA([mycpp],
-[[#! /bin/sh
-echo noise >&2
-exec ${1+"$@"}
-]])
-
-chmod +x mycpp
-
-_AT_CHECK_AC_MACRO(
-[[AC_PROG_CPP
-# If the preprocessor is not strict, just ignore
-test "x$ac_c_preproc_warn_flag" = xyes &&
-  AC_MSG_ERROR([preprocessor has no warning option], 77)
-CPP="./mycpp $CPP"
-AC_CHECK_HEADERS(stdio.h autoconf_io.h)]])
-
-AT_CHECK_DEFINES(
-[/* #undef HAVE_AUTOCONF_IO_H */
-#define HAVE_STDIO_H 1
+[[AC_DEFUN([AC_F77_1],
+[AC_LANG_PUSH([Fortran 77])
+if test $ac_ext != f; then
+  AC_MSG_ERROR([F77_1: current shell language is $ac_ext, expected Fortran])
+fi
+AC_LANG_POP
 ])
 
-AT_CLEANUP
-
 
-## ------------------------------ ##
-## AC_PROG_CPP without warnings.  ##
-## ------------------------------ ##
-
-AT_SETUP([AC_PROG_CPP without warnings])
-
-# Ignore if /lib/cpp doesn't work
-AT_CHECK([/lib/cpp </dev/null || exit 77], [], [ignore], [ignore])
+AC_DEFUN([AC_F77_2],
+[AC_LANG_PUSH([Fortran 77])
+AC_REQUIRE([AC_F77_1])
+if test $ac_ext != f; then
+  AC_MSG_ERROR([F77_2: current shell language is $ac_ext, expected Fortran])
+fi
+AC_LANG_POP
+])
 
-# A cpp which exit status is meaningless.
-AT_DATA([mycpp],
-[[#! /bin/sh
-/lib/cpp ${1+"$@"}
-exit 0
+AC_INIT
+AC_F77_2
+AS_EXIT(0)
 ]])
 
-chmod +x mycpp
-
-_AT_CHECK_AC_MACRO(
-[[CPP=./mycpp
-AC_PROG_CPP
-test "x$ac_c_preproc_warn_flag" != xyes &&
-  AC_MSG_ERROR([failed to detect preprocessor warning option])
-AC_CHECK_HEADERS(stdio.h autoconf_io.h)]])
-
-AT_CHECK_DEFINES(
-[/* #undef HAVE_AUTOCONF_IO_H */
-#define HAVE_STDIO_H 1
-])
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE
 
 AT_CLEANUP
 
 
+## --------------- ##
+## AC_RUN_IFELSE.  ##
+## --------------- ##
 
-## -------------------- ##
-## AC_PROG_CPP via CC.  ##
-## -------------------- ##
+AT_SETUP([AC_RUN_IFELSE])
 
+AT_DATA([configure.ac],
+[[AC_INIT
 
-# It's Ok for strict preprocessors to produce warnings.
+AC_RUN_IFELSE([AC_LANG_PROGRAM([], [exit (0)])],
+              [],
+              [AC_MSG_ERROR([saw `exit 0' as a failure])])
 
-AT_SETUP([AC_PROG_CPP via CC])
+AC_RUN_IFELSE([AC_LANG_PROGRAM([], [exit (2)])],
+              [AC_MSG_ERROR([saw `exit 2' as a success])],
+              [status=$?
+test $status != 2 &&
+  AC_MSG_ERROR([did not get as 2 exit status: $status])])
 
-# Ignore if /lib/cpp doesn't work
-AT_CHECK([/lib/cpp </dev/null || exit 77], [], [ignore], [ignore])
+# The old stinky one.
+AC_TRY_RUN([int main () { exit (3); }],
+           [AC_MSG_ERROR([saw `exit 3' as a success])],
+           [status=$?
+test $status != 3 &&
+  AC_MSG_ERROR([did not get 3 as exit status: $status])])
 
-AT_DATA([mycc],
-[[#! /bin/sh
-echo "Annoying copyright message" >&2
-exec "$@"
 ]])
 
-chmod +x mycc
-
-# We go through the following contortions, in order to have the
-# configure script go down the same codepaths as it would during a
-# normal CPP selection check.  If we explicitly set CPP, it goes down
-# a different codepath.
-_AT_CHECK_AC_MACRO(
-[[AC_PROG_CC
-CC="./mycc $CC"
-AC_PROG_CPP
-# The test $CC compiler should have been selected.
-test "$CPP" != "$CC -E" &&
-  AC_MSG_ERROR([error messages on stderr cause the preprocessor selection to fail])
-
-# Exercise CPP.
-AC_CHECK_HEADERS(stdio.h autoconf_io.h)]])
-
-AT_CHECK_DEFINES(
-[/* #undef HAVE_AUTOCONF_IO_H */
-#define HAVE_STDIO_H 1
-])
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([-q])
 
 AT_CLEANUP
 
-
 ## ------------------ ##
 ## AC_TRY_LINK_FUNC.  ##
 ## ------------------ ##
@@ -266,30 +149,3 @@ AT_CHECK_MACRO([AC_TRY_LINK_FUNC],
                   [AC_MSG_ERROR([cannot find `printf'])])
 AC_TRY_LINK_FUNC(Be_doomed_if_your_libc_has_a_function_named_like_this,
                  [AC_MSG_ERROR([found a nonexistent function])])])
-
-
-
-## --------------------- ##
-## Fortran 77 Compiler.  ##
-## --------------------- ##
-
-
-AT_CHECK_MACRO([GNU Fortran 77],
-[[AC_LANG(Fortran 77)
-AC_LANG_COMPILER
-
-if AC_TRY_COMMAND([$F77 --version | grep GNU >&2]); then
-  # Be sure to remove files which might be created by compilers that
-  # don't support --version.
-  rm -f a.exe a.out
-  # Has GNU in --version.
-  test "$G77" != yes &&
-    AC_MSG_ERROR([failed to recognize GNU Fortran 77 compiler])
-else
-  # Be sure to remove files which might be created by compilers that
-  # don't support --version.
-  rm -f a.exe a.out
-  # Has not.
-  test "$G77" = yes &&
-    AC_MSG_ERROR([incorrectly recognized a GNU Fortran 77 compiler])
-fi]])
diff --git a/tests/fortran.at b/tests/fortran.at
new file mode 100644 (file)
index 0000000..8178eba
--- /dev/null
@@ -0,0 +1,51 @@
+#                                                      -*- Autotest -*-
+
+AT_BANNER([Fortran low level compiling/preprocessing macros.])
+
+# Copyright 2000, 2001 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+
+# Since the macros which compile are required by most tests, check
+# them first.  But remember that looking for a compiler is even more
+# primitive, so check those first.
+
+
+## --------------------- ##
+## Fortran 77 Compiler.  ##
+## --------------------- ##
+
+
+AT_CHECK_MACRO([GNU Fortran 77],
+[[AC_LANG(Fortran 77)
+AC_LANG_COMPILER
+
+if AC_TRY_COMMAND([$F77 --version | grep GNU >&2]); then
+  # Be sure to remove files which might be created by compilers that
+  # don't support --version.
+  rm -f a.exe a.out
+  # Has GNU in --version.
+  test "$G77" != yes &&
+    AC_MSG_ERROR([failed to recognize GNU Fortran 77 compiler])
+else
+  # Be sure to remove files which might be created by compilers that
+  # don't support --version.
+  rm -f a.exe a.out
+  # Has not.
+  test "$G77" = yes &&
+    AC_MSG_ERROR([incorrectly recognized a GNU Fortran 77 compiler])
+fi]])
index 3b33ef72a8eb39f2d5bd989f7fa12602e62dc86a..b3b1f36eb24ecc7de7e6ebd95f32096eed25424d 100644 (file)
@@ -60,7 +60,9 @@ m4_include([compile.at])
 
 # Language support.
 m4_include([aclang.at])
+m4_include([c.at])
 m4_include([acc.at])
+m4_include([fortran.at])
 m4_include([acfortran.at])
 
 # Checking that AC_CHECK_FOO macros work properly.