automake
[Top][All Lists]
Advanced

[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



reply via email to

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