GNU bug report logs - #12495
AC_CONFIG_HEADERS with

Previous Next

Package: automake;

Reported by: Hib Eris <hib <at> hiberis.nl>

Date: Sun, 23 Sep 2012 18:21:02 UTC

Severity: normal

Tags: patch

Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #46 received at control <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Hib Eris <hib <at> hiberis.nl>
Cc: Nick Bowler <nbowler <at> elliptictech.com>, Peter Johansson <trojkan <at> gmail.com>,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	12495 <at> debbugs.gnu.org
Subject: Re: bug#12495: AC_CONFIG_HEADERS with
Date: Tue, 02 Oct 2012 16:43:20 +0200
tags 12495 + patch
close 12495
thanks

On 09/29/2012 08:18 PM, Stefano Lattarini wrote:
> Here is the patch finally.  I will commit it in a couple of days if there
> are no objections.  As usual, comments are welcome.
>
> ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ----
> 
> Subject: [PATCH] config headers: don't emit rules for headers not generated by autoheader
> 
> This change fixed automake bug#12495.
> 
> Even if an AC_CONFIG_HEADERS invocation is passed a list of several files
> as the first argument, only the first one of those file is considered by
> autoheader for automatic generation of the corresponding '.in' template.
> This is done on purpose, and is clearly documented in the Autoconf manual,
> which (as of the 2.69 version) reads something like this:
> 
>     The autoheader program searches for the first invocation of
>     AC_CONFIG_HEADERS in configure sources to determine the name of
>     the template.  If the first call of AC_CONFIG_HEADERS specifies
>     more than one input file name, autoheader uses the first one.
> 
> That is, an invocation like:
> 
>     AC_CONFIG_HEADERS([config.h config2.h])
> 
> should cause autoheader to generate only a 'config.h.in' template,
> and not also a 'config2.h.in' one.
> 
> Accordingly, automake, when tracing AC_CONFIG_HEADERS, should generate
> remake rules only for the template associated to the first input file
> name passed to that macro.  In some situations, however, automake failed
> to properly limit itself in this way; for example, with an input like:
> 
>     AC_CONFIG_HEADERS([config.h sub/foo.h])
> 
> in configure.ac, and with the 'sub' directory listed in the SUBDIRS
> variable of the top-level Makefile, automake would erroneously generate
> in 'sub/Makefile.in' a rule to remake the 'foo.h.in' template by
> invoking autoheader.
> 
> This issue was likely introduced in commit 'Release-1-8-23-g262bb92'
> of 2004-01-05.
> 
> * NEWS: Update.
> * doc/automake.texi (Optional): Improve wording in the description of
> hat rules automake generates in response to an 'AC_CONFIG_HEADERS'
> invocation.
> * lib/am/remake-hdr.am: Only emit autoheader-invoking remake rules for
> the %CONFIG_HIN% template if that corresponds to the first argument of
> AC_CONFIG_HEADERS, as explaned above.  Do so using the automake-time
> conditional %?FIRST-HDR%, that is properly passed ...
> * automake.in (handle_configure): ... from a 'file_contents' invocation
> in here.
> * t/autohdr-subdir-pr12495.sh: New test.
> * t/list-of-tests.mk: Add it.
> * THANKS: Update.
> 
Pushed now.  I'm thus closing this ticket.

Thanks,
  Stefano





This bug report was last modified 12 years and 238 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.