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