[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: <c9c5616d7ad945995f0c07d63a527343f2aaac1a.1306666282.git.stefano.lattar...@gmail.com> From: Stefano Lattarini <stefano.lattar...@gmail.com> 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 <stefano.lattar...@gmail.com> + + 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 <ralf.wildenh...@gmx.de> Stefano Lattarini <stefano.lattar...@gmail.com> 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: <c9c5616d7ad945995f0c07d63a527343f2aaac1a.1306666282.git.stefano.lattar...@gmail.com> References: <c9c5616d7ad945995f0c07d63a527343f2aaac1a.1306666282.git.stefano.lattar...@gmail.com> From: Stefano Lattarini <stefano.lattar...@gmail.com> 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 `@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 <stefano.lattar...@gmail.com> + 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 `@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 <stefano.lattar...@gmail.com> + 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