[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was:
From: |
Graham Reitz |
Subject: |
Re: [PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was: Re: make check failures) |
Date: |
Sun, 29 May 2011 08:17:39 -0500 |
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 <address@hidden> 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 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 +
> + 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 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: <address@hidden> 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 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 + 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 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 + 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
- Re: How to use alternative autoconf than what is located in /usr/local/bin (for automake compile)?, (continued)
- Re: How to use alternative autoconf than what is located in /usr/local/bin (for automake compile)?, Daniel Herring, 2011/05/23
- Re: How to use alternative autoconf than what is located in /usr/local/bin (for automake compile)?, Daniel Herring, 2011/05/23
- Re: How to use alternative autoconf than what is located in /usr/local/bin (for automake compile)?, Graham Reitz, 2011/05/23
- make check failures, Graham Reitz, 2011/05/24
- Re: make check failures, Stefano Lattarini, 2011/05/24
- Re: make check failures, Peter Rosin, 2011/05/24
- Message not available
- Re: make check failures, Stefano Lattarini, 2011/05/24
- Re: make check failures, Graham Reitz, 2011/05/24
- Message not available
- [PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was: Re: make check failures), Stefano Lattarini, 2011/05/29
- Re: [PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was: Re: make check failures), Stefano Lattarini, 2011/05/29
- Re: [PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was: Re: make check failures),
Graham Reitz <=
- Re: make check failures, Graham Reitz, 2011/05/24
- Message not available
- Message not available
- Re: [PATCHES] {maint} honour configure-time AUTOCONF and AUTOM4TE (was: Re: make check failures), Stefano Lattarini, 2011/05/30