Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Joseph S. Myers" <joseph@codesourcery.com>
To: gdb-patches@sourceware.org
Subject: Use makeinfo --html for HTML manuals
Date: Fri, 17 Apr 2009 20:40:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.64.0904172038520.12227@digraph.polyomino.org.uk> (raw)

This patch makes the GDB makefiles build HTML manuals using makeinfo
--html instead of texi2html.  This has the following advantages:

* makeinfo --html is the standard approach used by GNU software, so
  links between different manuals are more likely to work when
  makeinfo --html is used, manuals will appear more uniform and the
  Texinfo language implementation in makeinfo --html is more likely to
  be in sync with that used for other output formats.

* With texi2html (at least some versions), "make install-html" was
  broken because the files were not built under the expected names;
  this illustrates that texi2html has changed its behavior
  incompatibly in the past in ways making it problematic for the
  makefiles to allow for different versions.

The install-html rules for makeinfo --html output are taken from those
generated by automake, just as the install-pdf rules already present
were.

With regard to the removed comment about lack of split-file HTML
support in makeinfo 4.0, split-file output has been supported since
4.1, and the toplevel configure script requires makeinfo 4.7 (released
April 2004) as the minimum version for the src repository so all
supported makeinfo versions will generate split-file HTML output.

Tested with "make install-html".  OK to commit?

gdb:
2009-04-17  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in (MAKEHTML): Set to makeinfo --html.
	(MAKEHTMLFLAGS): Set to empty.

gdb/doc:
2009-04-17  Carlos O'Donell  <carlos@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (MAKEHTML): Set to makeinfo --html.
	(MAKEHTMLFLAGS): Set to empty.
	(html__strip_dir): Define.
	(HTMLFILES): Define.
	(HTMLFILES_INSTALL): Define.
	(install-html): Copy new automake rule.
	(html): Depend on $(HTMLFILES).
	(gdb_toc.html): Rename to gdb/index.html.
	(gdbint_toc.html): Rename to gdbint/index.html.
	(stabs_toc.html): Rename to stabs/index.html.
	(annotate_toc.html): Rename to annotate/index.html.

Index: gdb/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.1077
diff -u -r1.1077 Makefile.in
--- gdb/Makefile.in	17 Apr 2009 17:44:03 -0000	1.1077
+++ gdb/Makefile.in	17 Apr 2009 20:27:47 -0000
@@ -111,11 +111,8 @@
 # where to find makeinfo, preferably one designed for texinfo-2
 MAKEINFO=makeinfo
 
-# Contrary to documentation, the current directory is not
-# searched by texi2html, so specify it explicitly.
-# -macro 2007-07-26
-MAKEHTML = texi2html
-MAKEHTMLFLAGS = -menu -split_chapter -I .
+MAKEHTML = $(MAKEINFO) --html
+MAKEHTMLFLAGS =
 
 # Set this up with gcc if you have gnu ld and the loader will print out
 # line numbers for undefined references.
Index: gdb/doc/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/doc/Makefile.in,v
retrieving revision 1.44
diff -u -r1.44 Makefile.in
--- gdb/doc/Makefile.in	17 Apr 2009 17:44:05 -0000	1.44
+++ gdb/doc/Makefile.in	17 Apr 2009 20:27:47 -0000
@@ -46,14 +46,8 @@
 # where to find makeinfo, preferably one designed for texinfo-2
 MAKEINFO=makeinfo
 
-# Note that texinfo 4.0's makeinfo --html can only generate a
-# single file, which would be too large, so continue to use
-# texi2html. -sts 2000-03-28
-# Contrary to documentation, the current directory is not
-# searched by texi2html, so specify it explicitly.
-# -macro 2007-07-26
-MAKEHTML = texi2html
-MAKEHTMLFLAGS = -menu -split_chapter -I .
+MAKEHTML = $(MAKEINFO) --html 
+MAKEHTMLFLAGS =
 
 # where to find texi2roff, ditto
 TEXI2ROFF=texi2roff
@@ -80,6 +74,9 @@
 
 # Files which should be generated via 'pdf' and installed by 'install-pdf'
 PDFFILES = gdb.pdf gdbint.pdf stabs.pdf refcard.pdf annotate.pdf
+# Files which should be generated via 'html' and installed by 'install-html'
+HTMLFILES =  gdb/index.html gdbint/index.html stabs/index.html annotate/index.html
+HTMLFILES_INSTALL = gdb gdbint stabs annotate
 
 # There may be alternate predefined collections of switches to configure
 # the GDB manual.  Normally this is not done in synch with the software
@@ -163,7 +160,7 @@
 info: $(INFO_DEPS)
 dvi: gdb.dvi gdbint.dvi stabs.dvi refcard.dvi annotate.dvi
 ps: gdb.ps gdbint.ps stabs.ps refcard.ps annotate.ps
-html: gdb_toc.html gdbint_toc.html stabs_toc.html annotate_toc.html
+html: $(HTMLFILES)
 pdf: $(PDFFILES)
 all-doc: info dvi ps # pdf
 diststuff: info
@@ -205,9 +202,23 @@
 	  (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
 	done
 
-install-html: html
-	for i in *.html ; do \
-		$(INSTALL_DATA) $$i $(DESTDIR)$(htmldir)/$$i ; \
+html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+
+install-html: $(HTMLFILES)
+	@$(NORMAL_INSTALL)
+	test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)"
+	@list='$(HTMLFILES_INSTALL)'; for p in $$list; do \
+	  if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
+	  f=$(html__strip_dir) \
+	  if test -d "$$d$$p"; then \
+	    echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
+	  else \
+	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
+	  fi; \
 	done
 
 pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
@@ -417,7 +428,7 @@
 
 # GDB MANUAL: HTML file
 
-gdb_toc.html: ${GDB_DOC_FILES}
+gdb/index.html: ${GDB_DOC_FILES}
 	$(MAKEHTML) $(MAKEHTMLFLAGS) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo
 
 # Clean these up before each run.  Avoids a catch 22 with not being
@@ -445,7 +456,7 @@
 
 # GDB INTERNALS MANUAL: HTML file
 
-gdbint_toc.html: $(GDBINT_DOC_FILES)
+gdbint/index.html: $(GDBINT_DOC_FILES)
 	$(MAKEHTML) $(MAKEHTMLFLAGS) $(srcdir)/gdbint.texinfo
 
 stabs.info: $(STABS_DOC_FILES)
@@ -453,7 +464,7 @@
 
 # STABS DOCUMENTATION: HTML file
 
-stabs_toc.html: $(STABS_DOC_FILES)
+stabs/index.html: $(STABS_DOC_FILES)
 	$(MAKEHTML) $(MAKEHTMLFLAGS) $(srcdir)/stabs.texinfo
 
 # Clean these up before each run.  Avoids a catch 22 with not being
@@ -495,7 +506,7 @@
 annotate.info: $(ANNOTATE_DOC_FILES)
 	$(MAKEINFO)  -I $(srcdir) -o annotate.info $(srcdir)/annotate.texinfo
 
-annotate_toc.html: $(ANNOTATE_DOC_FILES)
+annotate/index.html: $(ANNOTATE_DOC_FILES)
 	$(MAKEHTML) $(MAKEHTMLFLAGS) $(srcdir)/annotate.texinfo
 
 force:

-- 
Joseph S. Myers
joseph@codesourcery.com


             reply	other threads:[~2009-04-17 20:40 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-17 20:40 Joseph S. Myers [this message]
2009-04-17 21:02 ` Michael Snyder
2009-04-18 16:36 ` Eli Zaretskii
2009-04-18 17:15   ` Joseph S. Myers
2009-04-20 19:23     ` Carlos O'Donell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0904172038520.12227@digraph.polyomino.org.uk \
    --to=joseph@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox