Subject: bug#49317: closed (Re: bug#49317: dist: depends on $(BUILT_SOURCES), but has no reason to)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 16 Jul 2021 01:38:02 +0000

Your bug report

#49317: dist: depends on $(BUILT_SOURCES), but has no reason to

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
49317: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49317
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#49317: dist: depends on $(BUILT_SOURCES), but has no reason to
From: Karl Berry <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Thu, 15 Jul 2021 19:37:25 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Allison - Jim finished pushing your patch a day or two
ago. Complications in testing. Thanks for the contribution! --karl

Subject: dist: depends on $(BUILT_SOURCES), but has no reason to
From: Allison Karlitskaya <[email-masked]>
To: [email-masked]
Date: Thu, 1 Jul 2021 13:52:44 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

BUILT_SOURCES solves a useful problem and we use it in our package for
a few things.  Its stated purpose (from the docs) is all about
compilation and dependency tracking.  It makes sense that
$(BUILT_SOURCES) should then be built as a prerequisite before any
targets that result in compilation: all, check, install-exec, ...

`make dist` doesn't compile the program, though: it distributes the
sources.  And usually generated files are not distributed.  If they
were to be disted, they could be listed explicitly for being disted
(for example in a _SOURCES variable or so).  We go out of the way to
put our compiled sources in nodist_ variables, and indeed, they're not
disted.

But because of the above dependency `make dist` still builds them (and
then ignores them).

Of course, there might be a edgecase where the disted tarball should
contain content that is output by a C program which needs to be
compiled and contains, itself, some generated sources.  Indeed, this
change was introduced in 2017, in this commit:

commit ac47c22e3c0c8b055cdd47ccd18621c56f807b37
Author:     Jim Meyering <[email-masked]>
AuthorDate: Thu Mar 20 12:31:32 2014 -0700
Commit:     Jim Meyering <[email-masked]>
CommitDate: Tue Nov 28 19:05:59 2017 -0800

    "make dist" did not depend on $(BUILT_SOURCES)

in response to this report:

    https://lists.gnu.org/r/bug-hello/2014-03/msg00016.html

GNU Hello builds its manpage (which it dists) by building and running
the binary and capturing its --help output.

A blanket depend on $(BUILT_SOURCES) for all automake-using projects
seems to be much too large of a hammer to solve that specific problem.

Thanks very much,

Allison Karlitskaya