Subject: Re: bug#12495: AC_CONFIG_HEADERS with

From: Stefano Lattarini <[email-masked]>
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