From 06f6765b7d10132d0dcefde1265b4d5f01df76b4 Mon Sep 17 00:00:00 2001 From: Reuben Thomas 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