On Fri, Dec 07, 2018 at 07:25:07AM -0600, Eric Blake wrote:
On 12/6/18 3:50 PM, Richard W.M. Jones wrote:
>---
> src/Makefile.am | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/src/Makefile.am b/src/Makefile.am
>index 3490c0f..65f9498 100644
>--- a/src/Makefile.am
>+++ b/src/Makefile.am
>@@ -80,6 +80,7 @@ nbdkit_LDFLAGS = \
> # synopsis.c is generated from docs/synopsis.txt where it is also
> # used to generate the man page. It is included in main.c.
>+BUILT_SOURCES = synopsis.c
> EXTRA_DIST = synopsis.c
> nbdkit_DEPENDENCIES = synopsis.c
> CLEANFILES += synopsis.c
Did this make an actual difference during parallel 'make', given
that you already have nbdkit_DEPENDENCIES to trigger normal make
prerequisites? Automake's implementation of BUILT_SOURCES states
that they will be rebuilt even when Makefile itself is out of date
(because configure.ac or Makefile.am was touched, for example),
which is really early in the process (and annoying when trying to
use tab completion to learn what targets make supports, since
BUILT_SOURCES are built prior to computing what output to present).
But while it might be annoying, I'm not opposed to the patch,
especially if you did hit a situation in this series where it
mattered.
So I didn't hit any particular problem.
However if my reading of this part of the automake documentation is
right then it is necessary (because we #include "synopsis.c"):
Moreover, all built sources do not necessarily have to be
listed in ‘BUILT_SOURCES’. For instance, a generated ‘.c’ file doesn’t
need to appear in ‘BUILT_SOURCES’ (unless it is included by another
source), because it’s a known dependency of the associated object.
However it's unclear if this is superceded by having the file listed
in *_DEPENDENCIES as you say above.
There's a later patch where I use BUILT_SOURCES for protostrings.c,
where according to that documentation it is _not_ necessary, but seems
like it does no harm either.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/