On 19 Feb 2022 15:03, Patrice Dumas wrote: > In Texinfo, we have a texinfo manual which is automatically generated > from Pod sections from Texinfo perl modules. When this generated manual > is removed, automake cannot run anymore. To workaround this issue, we > have a generation of a fake manual that contains only @setfilename > manual.info > in the autogen.sh script that can be used to bootstrap some other > autogenerated things, in particular Makefile fragments. However, this > is not practical, in particular if the generated manual is removed and > the Makefile.am file is modified, one need to redo a fake manual in > order to have things being ok again. > > It seems to me that one way to avoid the issue would be if automake used > only the texinfo manual name to construct the rules. It would probably > be a good thing to do irrespective of this issue, as @setfilename is not > as important as it used to be, now it is fully optional, and we probably > should consider as a best practice not to have @setfilename in Texinfo > manuals. > > The manual is in doc/tp_api in the texinfo sources, it is tp_api.texi.
automake already has some fallback logic if @setfilename isn't set -- it
uses the basename of the source file and changes .texi to .info. but it
doesn't work if the file doesn't exist. i think that should be easy to
support.
--- a/bin/automake.in
+++ b/bin/automake.in
@@ -3062,7 +3062,8 @@ sub scan_texinfo_file
{
my ($filename) = @_;
- my $texi = new Automake::XFile "< $filename";
+ my $source = -e $filename ? $filename : "/dev/null";
+ my $texi = new Automake::XFile "< $source";
verb "reading $filename";
my ($outfile, $vfile);
if this is the only thing you need, then i won't think any harder about it.
-mike
signature.asc
Description: PGP signature
