Thread (1 message) 1 message, 1 author, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help