Commit f3a7068a authored by Bruce Momjian's avatar Bruce Momjian

Build SGML documention output several times if necessary to have proper

indexes;  add 'draft' option to disable it.
parent 0764f413
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# #
# PostgreSQL documentation makefile # PostgreSQL documentation makefile
# #
# $PostgreSQL: pgsql/doc/src/sgml/Makefile,v 1.87 2007/01/07 08:49:31 petere Exp $ # $PostgreSQL: pgsql/doc/src/sgml/Makefile,v 1.88 2007/01/09 22:19:36 momjian Exp $
# #
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
...@@ -65,7 +65,7 @@ override SPFLAGS += -wall -wno-unused-param -wno-empty ...@@ -65,7 +65,7 @@ override SPFLAGS += -wall -wno-unused-param -wno-empty
## Man pages ## Man pages
## ##
.PHONY: man .PHONY: man draft
DEFAULTSECTION := $(sqlmansect_dummy) DEFAULTSECTION := $(sqlmansect_dummy)
...@@ -95,21 +95,38 @@ html: postgres.sgml $(ALLSGML) stylesheet.dsl ...@@ -95,21 +95,38 @@ html: postgres.sgml $(ALLSGML) stylesheet.dsl
ifeq ($(vpath_build), yes) ifeq ($(vpath_build), yes)
@cp $(srcdir)/stylesheet.css . @cp $(srcdir)/stylesheet.css .
endif endif
ifndef DRAFT
@cmp -s HTML.index.start HTML.index || $(MAKE) $*
endif
COLLATEINDEX := LC_ALL=C $(PERL) $(COLLATEINDEX) -f -g COLLATEINDEX := LC_ALL=C $(PERL) $(COLLATEINDEX) -f -g
# If HTML.index does not exist, create a dummy bookindex.sgml. During the draft:
# next build, create bookindex.sgml with the proper index contents. A proper ifndef DRAFT
# bookindex.sgml is required to have an index in the output. ifneq ($(MAKECMDGOALS), draft)
ifeq (,$(wildcard HTML.index)) # Call ourselves with the DRAFT value set. This seems to be the only
bookindex.sgml: # way to set gmake variables in a rule.
$(COLLATEINDEX) -o $@ -N @$(MAKE) DRAFT="Y" $(MAKECMDGOALS))
else else
bookindex.sgml: HTML.index # run default 'all' rule
$(COLLATEINDEX) -i 'bookindex' -o $@ $< @$(MAKE) DRAFT="Y" all
endif
endif endif
bookindex.sgml: HTML.index
# create a dummy bookindex.html
test -s HTML.index || $(COLLATEINDEX) -o $@ -N
# If HTML.index is valid, create a valid bookindex.sgml. This
# is required so the output has a proper index.
test ! -s HTML.index || $(COLLATEINDEX) -i 'bookindex' -o $@ $<
# save copy of HTML.index for later comparison
@cp HTML.index HTML.index.start
HTML.index:
# create HTML.index if it does not exist
@$(if $(wildcard HTML.index), , touch HTML.index)
version.sgml: $(top_builddir)/src/Makefile.global version.sgml: $(top_builddir)/src/Makefile.global
{ \ { \
echo "<!entity version \"$(VERSION)\">"; \ echo "<!entity version \"$(VERSION)\">"; \
...@@ -141,15 +158,27 @@ JADE.tex.call = $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d $(srcdir)/styl ...@@ -141,15 +158,27 @@ JADE.tex.call = $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d $(srcdir)/styl
%-A4.tex-ps: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml %-A4.tex-ps: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml
$(JADE.tex.call) -V texdvi-output -V '%paper-type%'=A4 -o $@ $< $(JADE.tex.call) -V texdvi-output -V '%paper-type%'=A4 -o $@ $<
ifndef DRAFT
@cmp -s HTML.index.start HTML.index || $(MAKE) $*
endif
%-US.tex-ps: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml %-US.tex-ps: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml
$(JADE.tex.call) -V texdvi-output -V '%paper-type%'=USletter -o $@ $< $(JADE.tex.call) -V texdvi-output -V '%paper-type%'=USletter -o $@ $<
ifndef DRAFT
@cmp -s HTML.index.start HTML.index || $(MAKE) $*
endif
%-A4.tex-pdf: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml %-A4.tex-pdf: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml
$(JADE.tex.call) -V texpdf-output -V '%paper-type%'=A4 -o $@ $< $(JADE.tex.call) -V texpdf-output -V '%paper-type%'=A4 -o $@ $<
ifndef DRAFT
@cmp -s HTML.index.start HTML.index || $(MAKE) $*
endif
%-US.tex-pdf: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml %-US.tex-pdf: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml
$(JADE.tex.call) -V texpdf-output -V '%paper-type%'=USletter -o $@ $< $(JADE.tex.call) -V texpdf-output -V '%paper-type%'=USletter -o $@ $<
ifndef DRAFT
@cmp -s HTML.index.start HTML.index || $(MAKE) $*
endif
%.dvi: %.tex-ps %.dvi: %.tex-ps
@rm -f $*.aux $*.log @rm -f $*.aux $*.log
...@@ -291,7 +320,7 @@ clean distclean maintainer-clean: ...@@ -291,7 +320,7 @@ clean distclean maintainer-clean:
# print # print
rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.eps *.fot rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.eps *.fot
# index # index
rm -f HTML.index $(GENERATED_SGML) rm -f HTML.index HTML.index.start $(GENERATED_SGML)
# text # text
rm -f INSTALL HISTORY regress_README rm -f INSTALL HISTORY regress_README
# XSLT # XSLT
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/docguide.sgml,v 1.63 2006/12/15 16:50:07 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/docguide.sgml,v 1.64 2007/01/09 22:19:36 momjian Exp $ -->
<appendix id="docguide"> <appendix id="docguide">
<title>Documentation</title> <title>Documentation</title>
...@@ -542,11 +542,12 @@ checking for sgmlspl... sgmlspl ...@@ -542,11 +542,12 @@ checking for sgmlspl... sgmlspl
</para> </para>
<para> <para>
When the HTML documentation is built, the process also generates To create a proper index, the build might process several identical
the linking information for the index entries. Thus, if you want stages. If you do not care about an index, and just want to
your documentation to have a concept index at the end, you need to proof-read the output, use <literal>draft</>:
build the HTML documentation once, and then build the <screen>
documentation again in whatever format you like. <prompt>doc/src/sgml$ </prompt><userinput>gmake draft html</userinput>
</screen>
</para> </para>
<para> <para>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment