automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was: Re:


From: Stefano Lattarini
Subject: [PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was: Re: make check failures)
Date: Sun, 29 May 2011 12:51:52 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

[Adding automake-patches]

On Saturday 28 May 2011, Graham Reitz wrote:
> Hi Stefano,
> 
> Did you have a chance to take a look at the config and test logs?
> (they are attached)
>
> I've been trying to figure it out without much success.
>
I think I've found the problem: the `aclocal.in' and `automake.in'
"templates" (from which the `aclocal' and `automake' scripts are
generated) fail to honour the AUTOCONF and AUTOM4TE defined at
configure time, and simply use literal "autom4te" and "autoconf"
instead.  This is a real bug in Automake's own build system, and
is still present in the latest developement version.  The attached
two-patches series (for maint) should fix it.  Graham, do you mind
trying if it solves your problem?  I will push the patches shortly
if there is no objection.

Thanks,
  Stefano
From c9c5616d7ad945995f0c07d63a527343f2aaac1a Mon Sep 17 00:00:00 2001
Message-Id: <address@hidden>
From: Stefano Lattarini <address@hidden>
Date: Sun, 29 May 2011 11:04:08 +0200
Subject: [PATCH 1/2] build: let the user override AUTOM4TE and AUTOUPDATE too

Currently, we allow the user to override AUTOCONF and AUTOHEADER
at configure time, and honour these overrides in our testsuite.
But we don't do the same with AUTOM4TE, AUTORECONF and AUTOUPDATE;
we should, in order to ensure a better consistency.

* configure.ac (am_AUTOM4TE, am_AUTOUPDATE, am_AUTORECONF): New
AC_SUBSTitutions.  Update comments.
* tests/defs.in ($AUTOUPDATE): Default to address@hidden@' now.
($AUTOM4TE): New variable, defaulting to address@hidden@'.
($AUTORECONF): New variable, defaulting to address@hidden@'.
* doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Update.
---
 ChangeLog                      |   14 ++++++++++++++
 Makefile.in                    |    3 +++
 configure                      |   12 +++++++++++-
 configure.ac                   |    6 +++++-
 doc/Makefile.am                |   10 ++++++++--
 doc/Makefile.in                |   13 +++++++++++--
 lib/Automake/Makefile.in       |    3 +++
 lib/Automake/tests/Makefile.in |    3 +++
 lib/Makefile.in                |    3 +++
 lib/am/Makefile.in             |    3 +++
 m4/Makefile.in                 |    3 +++
 tests/Makefile.in              |    3 +++
 tests/defs.in                  |    4 +++-
 13 files changed, 73 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 583d3d4..f447c19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2011-05-29  Stefano Lattarini  <address@hidden>
+
+       build: let the user override AUTOM4TE and AUTOUPDATE too
+       Currently, we allow the user to override AUTOCONF and AUTOHEADER
+       at configure time, and honour these overrides in our testsuite.
+       But we don't do the same with AUTOM4TE, AUTORECONF and AUTOUPDATE;
+       we should, in order to ensure a better consistency.
+       * configure.ac (am_AUTOM4TE, am_AUTOUPDATE, am_AUTORECONF): New
+       AC_SUBSTitutions.  Update comments.
+       * tests/defs.in ($AUTOUPDATE): Default to address@hidden@' now.
+       ($AUTOM4TE): New variable, defaulting to address@hidden@'.
+       ($AUTORECONF): New variable, defaulting to address@hidden@'.
+       * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Update.
+
 2011-05-22  Ralf Wildenhues  <address@hidden>
            Stefano Lattarini  <address@hidden>
 
diff --git a/Makefile.in b/Makefile.in
index 49c35f5..dfb9e73 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -194,6 +194,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/configure b/configure
index 5af3df8..5044112 100755
--- a/configure
+++ b/configure
@@ -603,7 +603,10 @@ am__isrc
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
+am_AUTOUPDATE
 am_AUTOHEADER
+am_AUTORECONF
+am_AUTOM4TE
 am_AUTOCONF
 build_os
 build_vendor
@@ -1774,11 +1777,18 @@ case $build_os in *\ *) build_os=`echo "$build_os" | 
sed 's/ /-/g'`;; esac
 
 # Save the AUTOCONF setting before AM_INIT_AUTOMAKE overrides it; this
 # way we can run Autoconf tests from configure (or from the test
-# suite) without being bothered by `missing'.  Likewise for autoheader.
+# suite) without being bothered by `missing'.  Likewise for autom4te,
+# autoreconf, autoheader, and autoupdate.
 am_AUTOCONF="${AUTOCONF-autoconf}"
 
+am_AUTOM4TE="${AUTOM4TE-autom4te}"
+
+am_AUTORECONF="${AUTORECONF-autoreconf}"
+
 am_AUTOHEADER="${AUTOHEADER-autoheader}"
 
+am_AUTOUPDATE="${AUTOUPDATE-autoupdate}"
+
 
 am__api_version='1.11'
 
diff --git a/configure.ac b/configure.ac
index de4583d..f804d18 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,9 +28,13 @@ AC_CANONICAL_BUILD
 
 # Save the AUTOCONF setting before AM_INIT_AUTOMAKE overrides it; this
 # way we can run Autoconf tests from configure (or from the test
-# suite) without being bothered by `missing'.  Likewise for autoheader.
+# suite) without being bothered by `missing'.  Likewise for autom4te,
+# autoreconf, autoheader, and autoupdate.
 AC_SUBST([am_AUTOCONF], ["${AUTOCONF-autoconf}"])
+AC_SUBST([am_AUTOM4TE], ["${AUTOM4TE-autom4te}"])
+AC_SUBST([am_AUTORECONF], ["${AUTORECONF-autoreconf}"])
 AC_SUBST([am_AUTOHEADER], ["${AUTOHEADER-autoheader}"])
+AC_SUBST([am_AUTOUPDATE], ["${AUTOUPDATE-autoupdate}"])
 
 AM_INIT_AUTOMAKE([1.10a dist-bzip2 filename-length-max=99 color-tests 
parallel-tests])
 
diff --git a/doc/Makefile.am b/doc/Makefile.am
index bb48fa2..f4f76c6 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -73,8 +73,14 @@ $(srcdir)/amhello-1.0.tar.gz: $(amhello_sources) 
$(top_srcdir)/configure.ac
        PATH="`pwd`/../tests$(PATH_SEPARATOR)$$PATH" && \
        export PATH && \
        cd $(srcdir)/amhello && \
-       ACLOCAL=aclocal-$(APIVERSION) AUTOMAKE=automake-$(APIVERSION) \
-       autoreconf -vfi && \
+       ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL && \
+       AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE && \
+       AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF && \
+       AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE && \
+       AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF && \
+       AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER && \
+       AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE && \
+       $(am_AUTORECONF) -vfi && \
        ./configure && \
        $(MAKE) $(AM_MAKEFLAGS) distcheck && \
        $(MAKE) $(AM_MAKEFLAGS) distclean && \
diff --git a/doc/Makefile.in b/doc/Makefile.in
index c1739e5..3034dcb 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -161,6 +161,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
@@ -817,8 +820,14 @@ $(srcdir)/amhello-1.0.tar.gz: $(amhello_sources) 
$(top_srcdir)/configure.ac
        PATH="`pwd`/../tests$(PATH_SEPARATOR)$$PATH" && \
        export PATH && \
        cd $(srcdir)/amhello && \
-       ACLOCAL=aclocal-$(APIVERSION) AUTOMAKE=automake-$(APIVERSION) \
-       autoreconf -vfi && \
+       ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL && \
+       AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE && \
+       AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF && \
+       AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE && \
+       AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF && \
+       AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER && \
+       AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE && \
+       $(am_AUTORECONF) -vfi && \
        ./configure && \
        $(MAKE) $(AM_MAKEFLAGS) distcheck && \
        $(MAKE) $(AM_MAKEFLAGS) distclean && \
diff --git a/lib/Automake/Makefile.in b/lib/Automake/Makefile.in
index 5f051ed..baccf7d 100644
--- a/lib/Automake/Makefile.in
+++ b/lib/Automake/Makefile.in
@@ -181,6 +181,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index b4940db..7ed17d6 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -226,6 +226,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/lib/Makefile.in b/lib/Makefile.in
index d9e41e2..bc2a6c0 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -183,6 +183,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/lib/am/Makefile.in b/lib/am/Makefile.in
index 352c64f..649c1bf 100644
--- a/lib/am/Makefile.in
+++ b/lib/am/Makefile.in
@@ -141,6 +141,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/m4/Makefile.in b/m4/Makefile.in
index cd80415..ff4dd43 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -141,6 +141,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 110d13b..d4b7c78 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -231,6 +231,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/tests/defs.in b/tests/defs.in
index e020498..f6f12ec 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -98,8 +98,10 @@ export SHELL
 test -z "$PERL" && PERL='@PERL@'
 test -z "$MAKE" && MAKE=make
 test -z "$AUTOCONF" && AUTOCONF="@am_AUTOCONF@"
+test -z "$AUTOM4TE" && AUTOM4TE="@am_AUTOM4TE@"
+test -z "$AUTORECONF" && AUTORECONF="@am_AUTORECONF@"
 test -z "$AUTOHEADER" && AUTOHEADER="@am_AUTOHEADER@"
-test -z "$AUTOUPDATE" && AUTOUPDATE=autoupdate
+test -z "$AUTOUPDATE" && AUTOUPDATE="@am_AUTOUPDATE@"
 test -z "$MISSING" && MISSING=`pwd`/../lib/missing
 # Use -Werror because this also turns some Perl warnings into error.
 # (Tests for which this is inappropriate should use -Wno-error.)
-- 
1.7.2.3

From 0b6b585b4aa219df49d0e713a7ac136c40a1e493 Mon Sep 17 00:00:00 2001
Message-Id: <address@hidden>
In-Reply-To: <address@hidden>
References: <address@hidden>
From: Stefano Lattarini <address@hidden>
Date: Sun, 29 May 2011 10:42:00 +0200
Subject: [PATCH 2/2] automake, aclocal: honour configure-time AUTOCONF and 
AUTOM4TE

Currently, the Automake's own configure script allow definition
of AUTOCONF and AUTOM4TE, expected to point respectively to an
autoconf and autom4te programs.  But while these definitions are
honoured in the Automake's build systems and test suite, they
are *not* honoured in the generated `automake' and `aclocal'
scripts.  This behaviour, apart from being wrong in that it does
not allow the user enough freedom in choosing its tools, also
causes inconsistencies in the test suite, brining to spurious
failures.

Problem reported by Graham Reitz on the automake list; see thread:
<http://lists.gnu.org/archive/html/automake/2011-05/msg00022.html>

* automake.in ($traces): Use address@hidden', not simply `autoconf'.
* aclocal.in ($traces): Use address@hidden', not simply `autom4te'.
* Makefile.am (do_subst): Substitute also address@hidden' and
address@hidden'.
* NEWS: Update.
* THANKS: Update.
---
 ChangeLog   |   21 +++++++++++++++++++++
 Makefile.am |    2 ++
 Makefile.in |    2 ++
 NEWS        |    4 ++++
 THANKS      |    1 +
 aclocal.in  |    2 +-
 automake.in |    2 +-
 7 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f447c19..12e388e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,26 @@
 2011-05-29  Stefano Lattarini  <address@hidden>
 
+       automake, aclocal: honour configure-time AUTOCONF and AUTOM4TE
+       Currently, the Automake's own configure script allow definition
+       of AUTOCONF and AUTOM4TE, expected to point respectively to an
+       autoconf and autom4te programs.  But while these definitions are
+       honoured in the Automake's build systems and test suite, they
+       are *not* honoured in the generated `automake' and `aclocal'
+       scripts.  This behaviour, apart from being wrong in that it does
+       not allow the user enough freedom in choosing its tools, also
+       causes inconsistencies in the test suite, brining to spurious
+       failures.
+       Problem reported by Graham Reitz on the automake list; see thread:
+       <http://lists.gnu.org/archive/html/automake/2011-05/msg00022.html>
+       * automake.in ($traces): Use address@hidden', not simply `autoconf'.
+       * aclocal.in ($traces): Use address@hidden', not simply `autom4te'.
+       * Makefile.am (do_subst): Properly substitute address@hidden' and
+       address@hidden' too.
+       * NEWS: Update.
+       * THANKS: Update.
+
+2011-05-29  Stefano Lattarini  <address@hidden>
+
        build: let the user override AUTOM4TE and AUTOUPDATE too
        Currently, we allow the user to override AUTOCONF and AUTOHEADER
        at configure time, and honour these overrides in our testsuite.
diff --git a/Makefile.am b/Makefile.am
index 6e8b7df..195927c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -76,6 +76,8 @@ do_subst = sed \
   -e 's,address@hidden@],$(PERL),g' \
   -e 's,address@hidden@],$(PERL_THREADS),g' \
   -e 's,address@hidden@],$(SHELL),g' \
+  -e 's,address@hidden@],$(am_AUTOCONF),g' \
+  -e 's,address@hidden@],$(am_AUTOM4TE),g' \
   -e 's,address@hidden@],$(VERSION),g' \
   -e 's,address@hidden@],Generated from address@hidden; do not edit by 
hand.,g' \
   -e 's,address@hidden@],$(datadir),g'
diff --git a/Makefile.in b/Makefile.in
index dfb9e73..326530a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -264,6 +264,8 @@ do_subst = sed \
   -e 's,address@hidden@],$(PERL),g' \
   -e 's,address@hidden@],$(PERL_THREADS),g' \
   -e 's,address@hidden@],$(SHELL),g' \
+  -e 's,address@hidden@],$(am_AUTOCONF),g' \
+  -e 's,address@hidden@],$(am_AUTOM4TE),g' \
   -e 's,address@hidden@],$(VERSION),g' \
   -e 's,address@hidden@],Generated from address@hidden; do not edit by 
hand.,g' \
   -e 's,address@hidden@],$(datadir),g'
diff --git a/NEWS b/NEWS
index c8219bd..b7f9b54 100644
--- a/NEWS
+++ b/NEWS
@@ -61,6 +61,10 @@ Bugs fixed in 1.11.0a:
 
   - Java sources specified with check_JAVA are not compiled anymore upon
     "make all", but only upon "make check".
+
+  - Now aclocal and automake, when they've to spawn autoconf or autom4te
+    processes, honour the configure-time definitions of AUTOCONF and
+    AUTOM4TE.
 
 New in 1.11:
 
diff --git a/THANKS b/THANKS
index 593ebc5..16a1ef8 100644
--- a/THANKS
+++ b/THANKS
@@ -117,6 +117,7 @@ Geoffrey Keating    address@hidden
 Glenn Amerine          address@hidden
 Gord Matzigkeit                address@hidden
 Gordon Sadler          address@hidden
+Graham Reitz           address@hidden
 Greg A. Woods          address@hidden
 Greg Schafer           address@hidden
 Guido Draheim          address@hidden
diff --git a/aclocal.in b/aclocal.in
index 2210fe3..4b63c1a 100644
--- a/aclocal.in
+++ b/aclocal.in
@@ -663,7 +663,7 @@ sub trace_used_macros ()
   my %files = map { $map{$_} => 1 } keys %macro_seen;
   %files = strip_redundant_includes %files;
 
-  my $traces = ($ENV{AUTOM4TE} || 'autom4te');
+  my $traces = ($ENV{AUTOM4TE} || '@am_AUTOM4TE@');
   $traces .= " --language Autoconf-without-aclocal-m4 ";
   # All candidate files.
   $traces .= join (' ',
diff --git a/automake.in b/automake.in
index a8ec749..2669418 100755
--- a/automake.in
+++ b/automake.in
@@ -5281,7 +5281,7 @@ sub scan_autoconf_traces ($)
                sinclude => 1,
              );
 
-  my $traces = ($ENV{AUTOCONF} || 'autoconf') . " ";
+  my $traces = ($ENV{AUTOCONF} || '@am_AUTOCONF@') . " ";
 
   # Use a separator unlikely to be used, not `:', the default, which
   # has a precise meaning for AC_CONFIG_FILES and so on.
-- 
1.7.2.3


reply via email to

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