On Tue, Nov 28, 2017 at 8:35 PM, Nick Bowler <nbow...@draconx.ca> wrote: > On 2017-11-28 18:13 -0800, Jim Meyering wrote: >> On Tue, Nov 28, 2017 at 12:45 PM, Nick Bowler <nbow...@draconx.ca> wrote: >> > The Automake manual unequivocally states that BUILT_SOURCES files are >> > generated only when running 'make all', 'make check' or 'make install'. >> > >> > So if they are going to be generated on 'make dist' as well, then the >> > manual needs a corresponding update. >> >> Hi Nick, >> Thanks for the suggestion, but I do not think it is desired. "make >> dist" is already defined as building everything that goes into the >> distribution tarball, and that implies it must also build anything >> (e.g., from BUILT_SOURCES) that happens to be required to do that. > > I agree that it *should* but not that it *must*, because BUILT_SOURCES > explicitly (by design) bypasses the usual prerequisite mechanisms. > > If you use normal prerequisites instead of BUILT_SOURCS everything > works just fine wrt. distribution, of course, and is the approach I > would personally recommend in all cases. > >> Perhaps more importantly, this is an implementation detail that feels >> like it should not be made part of the contract that the documentation >> provides ... > > But now with the change applied, as it stands the documentation is > simply wrong. For example, this passage from the manual (§9.4 Built > Sources): > > "... BUILT_SOURCES is honored only by ‘make all’, ‘make check’ and > ‘make install’." > > is no longer true. This error can be corrected without explicitly > documenting the new behaviour, for example by making the list of > targets non-exhaustive in nature. > > Perhaps something like: > > ... BUILT_SOURCES is honored only by certain targets, including ‘make > all’, ‘make check’ and ‘make install’.
Thanks for keeping us honest. That sounds reasonable. Send a patch?