autoconf-patches
[Top][All Lists]
Advanced

[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])



reply via email to

[Prev in Thread] Current Thread [Next in Thread]