Re: [install info (using perl) 1/2] Add support for an info version of the user manual
From: David Kastrup <hidden>
Date: 2016-06-15 22:43:28
Junio C Hamano [off-list ref] writes:
David Kastrup [off-list ref] writes:quoted
+git.info: user-manual.xml + $(RM) $@ $*.texi + $(DOCBOOK2X_TEXI) user-manual.xml --to-stdout | \ + perl -ne 'if (/^\@setfilename/) {$$_="\@setfilename git.info\ +"} elsif (/^\@direntry/) {print "\@dircategory Development\ +\@direntry\ +* Git: (git). A fast distributed revision control system\ +\@end direntry\ +"} print unless (/^\@direntry/ .. /^\@end direntry/)' > $*.texi + $(MAKEINFO) --no-split $*.texi + $(RM) $*.texi +This part worries me. Historically (as you probably know, having suffered a lot more than me with this issue), multi-line command script in Makefile was hugely unportable. Some "make" implementations stripped backslash linefeed at the end, some other implementations stripped only backslash, yet some other kept both backslash and linefeed. It was a mess. Admittably we are already quite dependent on GNU make,
Yes, definitely. That's why I did it that way in the first place. It is probably not inconceivable, however, that even then some combination of make port and perl port to Windows would get into a tizzy.
so this is probably not a huge deal, but I have a vague recollection that even GNU make itself changed its behaviour over time with respect to this exact area, and I had to adjust a few Makefiles to accomodate both old and new GNU make.
I have to admit that I did not know in advance how this would work out and adapted the code to the behavior.
The standard workaround is of course to have this perl script part as a separate, "Documentation/fixup-texi.perl" script and invoke it from the Makefile.
I can code this as a single overlong line reasonably easy. And it is not actually necessary to do the @setfilename replacement: one can just specify an override of the output file name. That shortens the Perl script. I'll have to see whether I can get rid of it completely, but the documentation for docbook2X is really bad (and the author did not respond to Email yet). And googling on the net showed that I am not the only one who fixed up after docbook2X manually. Don't expect a new patch in this area soon: I am messing with other stuff right now and it does not make sense reworking this again when I am not sure yet whether I can throw it out altogether. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum