This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Use makeinfo --html for HTML manuals


Joseph S. Myers wrote:
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?

Eli's area, but I think it sounds great!




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:




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]