[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [FYI] docs: cygnus mode doesn't require AM_CYGWIN32 macro.
From: |
Ralf Wildenhues |
Subject: |
Re: [FYI] docs: cygnus mode doesn't require AM_CYGWIN32 macro. |
Date: |
Sun, 9 Jan 2011 11:22:27 +0100 |
User-agent: |
Mutt/1.5.20 (2010-08-04) |
[ dropping bug-autoconf ]
* Ralf Wildenhues wrote on Sun, Jan 09, 2011 at 10:19:56AM CET:
> * Ralf Wildenhues wrote on Wed, Dec 22, 2010 at 07:22:24AM CET:
> > Hmpf. Nowadays AM_CYGWIN just expands to AC_CYGWIN, which causes
> > $CYGWIN to be set. The latter is probably a bad idea for other reasons
> > (Cygwin AFAIK uses the variable for other purposes), but at least one
> > macro in Autoconf's fortran.m4 still seems to make use of $CYGWIN. It
> > should at least also be fixed to use $host_os instead.
>
> The patch below should address that. I have no idea whether this code
> is still relevant on Cygwin, but I'm assuming that it is. I haven't
> actually tested it there, but I'm running the testsuite on GNU/Linux
> right now to ensure there are no undesired side effects. OK to push
> when that passes?
The patch caused testsuite regressions:
# -*- compilation -*-
307. fortran.at:174: testing AC_F77_DUMMY_MAIN usage ...
../../autoconf/tests/fortran.at:240: autoconf --force
../../autoconf/tests/fortran.at:241: autoheader
../../autoconf/tests/fortran.at:242: ./configure $configure_options
--- /dev/null 2010-12-28 16:33:29.506060496 +0100
+++ /tmp/build/tests/testsuite.dir/at-groups/307/stderr 2011-01-09
10:37:20.000000000 +0100
@@ -0,0 +1 @@
+configure: error: cannot find install-sh, install.sh, or shtool in "." "./.."
"./../.."
stdout:
which is a sign that the AC_REQUIRE addition addresses a latent issue.
Here's an updated patch. OK?
Thanks,
Ralf
Avoid reference to $CYGWIN in Fortran macros.
* lib/autoconf/fortran.m4 (_AC_FC_LIBRARY_LDFLAGS): Require
AC_CANONICAL_HOST. Replace test for $CYGWIN with $host_s test.
* tests/fortran.at (AC_F77_DUMMY_MAIN usage)
(AC_FC_DUMMY_MAIN usage, AC_F77_MAIN usage, AC_FC_MAIN usage):
Use AT_CONFIGURE_AC and simplify accordingly, so auxiliary
scripts are copied into the test directories.
(AC_F77_FUNC usage, AC_FC_FUNC usage): Likewise. Adjust to
autoheader being used now.
diff --git a/lib/autoconf/fortran.m4 b/lib/autoconf/fortran.m4
index c704868..bed9c96 100644
--- a/lib/autoconf/fortran.m4
+++ b/lib/autoconf/fortran.m4
@@ -609,7 +609,8 @@ fi],
# in "octave-2.0.13/aclocal.m4", and full credit should go to John
# W. Eaton for writing this extremely useful macro. Thank you John.
AC_DEFUN([_AC_FC_LIBRARY_LDFLAGS],
-[_AC_FORTRAN_ASSERT()dnl
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_AC_FORTRAN_ASSERT()dnl
_AC_PROG_FC_V
AC_CACHE_CHECK([for _AC_LANG libraries of $[]_AC_FC[]],
ac_cv_[]_AC_LANG_ABBREV[]_libs,
[if test "x$[]_AC_LANG_PREFIX[]LIBS" != "x"; then
@@ -641,7 +642,11 @@ while test address@hidden:@] != 1; do
|-LANG:=* | -LIST:* | -LNO:* | -link)
;;
-lkernel32)
- test x"$CYGWIN" != xyes &&
ac_cv_[]_AC_LANG_ABBREV[]_libs="$ac_cv_[]_AC_LANG_ABBREV[]_libs $ac_arg"
+ case $host_os in
+ *cygwin*) ;;
+ *) ac_cv_[]_AC_LANG_ABBREV[]_libs="$ac_cv_[]_AC_LANG_ABBREV[]_libs
$ac_arg"
+ ;;
+ esac
;;
-[[LRuYz]])
# These flags, when seen by themselves, take an argument.
diff --git a/tests/fortran.at b/tests/fortran.at
index 92df39d..f0fec7c 100644
--- a/tests/fortran.at
+++ b/tests/fortran.at
@@ -173,15 +173,12 @@ AT_CLEANUP
AT_SETUP([AC_F77_DUMMY_MAIN usage])
-AT_DATA([configure.ac],
-[[AC_INIT
-AC_CONFIG_HEADERS([config.h:config.hin])
+AT_CONFIGURE_AC([[
AC_PROG_F77
AC_F77_DUMMY_MAIN([], [AC_MSG_FAILURE([failed to determine F77 dummy main],
[77])])
AC_F77_WRAPPERS
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
]])
AT_DATA([Makefile.in],
@@ -253,16 +250,13 @@ AT_CLEANUP
AT_SETUP([AC_FC_DUMMY_MAIN usage])
-AT_DATA([configure.ac],
-[[AC_INIT
-AC_CONFIG_HEADERS([config.h:config.hin])
+AT_CONFIGURE_AC([[
AC_PROG_FC
AC_FC_FIXEDFORM
AC_FC_DUMMY_MAIN([], [AC_MSG_FAILURE([failed to determine FC dummy main],
[77])])
AC_FC_WRAPPERS
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
]])
AT_DATA([Makefile.in],
@@ -334,15 +328,12 @@ AT_CLEANUP
AT_SETUP([AC_F77_MAIN usage])
-AT_DATA([configure.ac],
-[[AC_INIT
-AC_CONFIG_HEADERS([config.h:config.hin])
+AT_CONFIGURE_AC([[
AC_PROG_F77
AC_F77_MAIN
AC_F77_WRAPPERS
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
]])
AT_DATA([Makefile.in],
@@ -416,16 +407,13 @@ AT_CLEANUP
AT_SETUP([AC_FC_MAIN usage])
-AT_DATA([configure.ac],
-[[AC_INIT
-AC_CONFIG_HEADERS([config.h:config.hin])
+AT_CONFIGURE_AC([[
AC_PROG_FC
AC_FC_FIXEDFORM
AC_FC_MAIN
AC_FC_WRAPPERS
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
]])
AT_DATA([Makefile.in],
@@ -498,15 +486,13 @@ AT_CLEANUP
AT_SETUP([AC_F77_FUNC usage])
-AT_DATA([configure.ac],
-[[AC_INIT
+AT_CONFIGURE_AC([[
AC_PROG_F77
AC_F77_FUNC([foobar])
AC_SUBST([foobar])
AC_PROG_CC
AC_CONFIG_FILES([cprogram.c:cprogram.in])
AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
]])
AT_DATA([Makefile.in],
@@ -520,7 +506,7 @@ address@hidden@: address@hidden@ address@hidden@
address@hidden@:
@F77@ @FFLAGS@ -c $<
address@hidden@:
- @CC@ @DEFS@ @CPPFLAGS@ @CFLAGS@ -c $<
+ @CC@ @DEFS@ -I. @CPPFLAGS@ @CFLAGS@ -c $<
]])
AT_DATA([foobar.f],
@@ -532,7 +518,8 @@ AT_DATA([foobar.f],
]])
AT_DATA([cprogram.in],
-[[#include <math.h>
+[[#include <config.h>
+#include <math.h>
#ifdef __cplusplus
extern "C" /* prevent C++ name mangling */
@@ -558,6 +545,7 @@ int main(int argc, char *argv[])
]])
AT_CHECK_AUTOCONF
+AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
: "${MAKE=make}"
AT_CHECK([$MAKE], [], [ignore], [ignore])
@@ -572,15 +560,13 @@ AT_CLEANUP
AT_SETUP([AC_FC_FUNC usage])
-AT_DATA([configure.ac],
-[[AC_INIT
+AT_CONFIGURE_AC([[
AC_PROG_FC
AC_FC_FUNC([foobar])
AC_SUBST([foobar])
AC_PROG_CC
AC_CONFIG_FILES([cprogram.c:cprogram.in])
AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
]])
AT_DATA([Makefile.in],
@@ -594,7 +580,7 @@ address@hidden@: address@hidden@ address@hidden@
address@hidden@:
@FC@ @FCFLAGS@ -c $<
address@hidden@:
- @CC@ @DEFS@ @CPPFLAGS@ @CFLAGS@ -c $<
+ @CC@ @DEFS@ -I. @CPPFLAGS@ @CFLAGS@ -c $<
]])
AT_DATA([foobar.f],
@@ -606,7 +592,8 @@ AT_DATA([foobar.f],
]])
AT_DATA([cprogram.in],
-[[#include <math.h>
+[[#include <config.h>
+#include <math.h>
#ifdef __cplusplus
extern "C" /* prevent C++ name mangling */
@@ -632,6 +619,7 @@ int main(int argc, char *argv[])
]])
AT_CHECK_AUTOCONF
+AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
: "${MAKE=make}"
AT_CHECK([$MAKE], [], [ignore], [ignore])