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: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:28

David Kastrup [off-list ref] writes:
quoted hunk
@@ -139,6 +154,18 @@ XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
 user-manual.html: user-manual.xml
 	xsltproc $(XSLTOPTS) -o $@ $(XSLT) $<
 
+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, 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.

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