Subject: bug#39666: distcheck for VPATH build: #line directives of generated YACC and LEX c-files in tarballs

From: "Jannick" <[email-masked]>
Date: Tue, 18 Feb 2020 10:59:43 +0100

$ automake --version
automake (GNU automake) 1.16.1

For c-files generated by LEX and YACC in the build process the script ylwrap
takes care, among other things, that the relative file paths in #line
directives are correct.  The generated files are part of distribution
tarballs, where they sit next to their corresponding source YACC or LEX
file; it appears that their #line directives are the same as in the build
process.  This causes an issue when 'make distcheck' is run in a (strict)
VPATH build: In the distribution tarball the relative #line directives
pointing to the source YACC or LEX file are incorrect.

So my question is under the premise of a VPATH build:  Is there a remedy for
the incorrect paths in these #line directives (OTHER THAN running configure
and make in the top src dir)?  Or this is rather a bug in automake to be
fixed?  The documentation appears to be silent about that (or am I missing
something here?)

The attached minimal sample package demonstrates the issue.  Sources sit in
the src subdir. The package was created by 'make distcheck' for a VPATH
build, i.e.:  mkdir bld && cd bld && ../configure  && make && make distcheck
Please check the #line directives in parse.c and scan.c. (I did not have
automake generate corresponding header files.)

Separately, when distcleancheck fails for an elaborate package I find the
part of the error message a bit misleading (sample below).  It could be
interpreted in the way that './share/info/dir' should be uninstalled, too,
which supposedly it should NOT be, since the check passes regardless of the
dir file.  So, it would be great if the dir file could be dropped in the
currently prompted error message. (Of course, it is technically correct to
say that the dir file is left after uninstall.)

ERROR: files left after uninstall:
./path/to/file/forgotten/to/uninstall
./share/info/dir

Many thanks for your insights,
J.

PS: Please cc me in replies. Thanks!