Subject: Re: bug#62791: BUILT_SOURCES not honoured in parallel build?

From: Reuben Thomas <[email-masked]>
Date: Sat, 9 Dec 2023 13:30:59 +0000

On Sat, 9 Dec 2023 at 15:16, Reuben Thomas <[email-masked]> wrote:

>
> If you're happy with that, I'll write a patch.
>

Patch attached.

-- 
https://rrt.sc3d.org
From 06f6765b7d10132d0dcefde1265b4d5f01df76b4 Mon Sep 17 00:00:00 2001
From: Reuben Thomas <[email-masked]>
Date: Sat, 9 Dec 2023 15:20:44 +0200
Subject: [PATCH] doc: add advice to list Yacc/Lex generated sources in
 BUILT_SOURCES

This fixes #62791: it seems to be necessary to list the generated C source
file for a Yacc/Lex file, as well as the header file in BUILT_SOURCES.
---
 doc/automake.texi | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/doc/automake.texi b/doc/automake.texi
index e53a44332..77292288d 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -6329,7 +6329,8 @@ extensions @file{.l}, @file{.ll}, @file{.l++}, @file{.lxx}, and
 @file{.lpp} are recognized.
 
 You should never explicitly mention the intermediate (C or C++) file
-in any @code{SOURCES} variable; only list the source file.
+in any @code{SOURCES} variable (except @code{BUILT_SOURCES}, see below);
+only list the source file.
 
 The intermediate files generated by @command{yacc} (or @command{lex})
 will be included in any distribution that is made.  That way the user
@@ -6359,11 +6360,11 @@ What Automake cannot guess, though, is where this header will be used:
 it is up to you to ensure the header gets built before it is first
 used.  Typically this is necessary in order for dependency tracking to
 work when the header is included by another file.  The common solution
-is listing the header file in @code{BUILT_SOURCES} (@pxref{Sources})
-as follows.
+is listing the header file, and the corresponding C file, in
+@code{BUILT_SOURCES} (@pxref{Sources}) as follows.
 
 @example
-BUILT_SOURCES = parser.h
+BUILT_SOURCES = parser.h parser.c
 AM_YFLAGS = -d
 bin_PROGRAMS = foo
 foo_SOURCES = @dots{} parser.y @dots{}
-- 
2.34.1