Awesome. Thanks Stefano. I will try it this morning (CST) and report back.
Graham Sent from my iPhone On May 29, 2011, at 5:51 AM, Stefano Lattarini <stefano.lattar...@gmail.com> wrote: > [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: From: Stefano Lattarini 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 `@am_AUTOUPDATE@' now. ($AUTOM4TE): New variable, > defaulting to `@am_AUTOM4TE@'. ($AUTORECONF): New variable, defaulting to > `@am_AUTORECONF@'. * 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 + > + 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 `@am_AUTOUPDATE@' now. + > ($AUTOM4TE): New variable, defaulting to `@am_AUTOM4TE@'. + > ($AUTORECONF): New variable, defaulting to `@am_AUTORECONF@'. + * > doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Update. + 2011-05-22 Ralf > Wildenhues Stefano Lattarini 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: > <0b6b585b4aa219df49d0e713a7ac136c40a1e493.1306666282.git.stefano.lattar...@gmail.com> > In-Reply-To: References: From: Stefano Lattarini 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: > * automake.in ($traces): Use `@am_AUTOCONF', not simply `autoconf'. * > aclocal.in ($traces): Use `@am_AUTOM4TE', not simply `autom4te'. * > Makefile.am (do_subst): Substitute also `@am_AUTOCONF' and `@am_AUTOM4TE'. * > 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 + > 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: + + * automake.in ($traces): Use > `@am_AUTOCONF', not simply `autoconf'. + * aclocal.in ($traces): Use > `@am_AUTOM4TE', not simply `autom4te'. + * Makefile.am (do_subst): > Properly substitute `@am_AUTOCONF' and + `@am_AUTOM4TE' too. + * NEWS: > Update. + * THANKS: Update. + +2011-05-29 Stefano Lattarini + 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,[@]PERL[@],$(PERL),g' \ -e > 's,[@]PERL_THREADS[@],$(PERL_THREADS),g' \ -e 's,[@]SHELL[@],$(SHELL),g' \ + > -e 's,[@]am_AUTOCONF[@],$(am_AUTOCONF),g' \ + -e > 's,[@]am_AUTOM4TE[@],$(am_AUTOM4TE),g' \ -e 's,[@]VERSION[@],$(VERSION),g' \ > -e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \ > -e 's,[@]datadir[@],$(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,[@]PERL[@],$(PERL),g' \ -e > 's,[@]PERL_THREADS[@],$(PERL_THREADS),g' \ -e 's,[@]SHELL[@],$(SHELL),g' \ + > -e 's,[@]am_AUTOCONF[@],$(am_AUTOCONF),g' \ + -e > 's,[@]am_AUTOM4TE[@],$(am_AUTOM4TE),g' \ -e 's,[@]VERSION[@],$(VERSION),g' \ > -e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \ > -e 's,[@]datadir[@],$(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 geo...@apple.com Glenn > Amerine gl...@pie.mhsc.org Gord Matzigkeit g...@gnu.ai.mit.edu > Gordon Sadler gbsadl...@lcisp.com +Graham Reitz > grahamre...@me.com Greg A. Woods wo...@most.weird.com Greg Schafer > gscha...@zip.com.au Guido Draheim gui...@gmx.de 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