git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [install info (using perl) 1/2] Add support for an info version of the user manual

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 8, 2007, 22:59 UTC
Message-ID
<7vabt11vkj.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<591c5679ea79b76cd5db57443b1d691bde842351.1186484406.git.dak@gnu.org>
David Kastrup <dak@gnu.org> writes:
Show 16 quoted lines
> @@ -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.

Previous: David KastrupNext: Junio C Hamano
Message 3 of 8 in “[install info (using perl) 1/2] Add support for an info version of the user manual”
  1. David KastrupAug 6, 2007
  2. 2/2 INSTALL: explain info installation and dependencies.David Kastrup, Aug 7, 2007
  3. Junio C HamanoAug 8, 2007
  4. Junio C HamanoAug 8, 2007
  5. Junio C HamanoAug 8, 2007
  6. David KastrupAug 8, 2007
  7. David KastrupAug 8, 2007
  8. David KastrupAug 8, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.