Re: [HACKERS] SGML index build fix

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org, Peter Eisentraut <peter_e(at)gmx(dot)net>, Martijn van Oosterhout <kleptog(at)svana(dot)org>, "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>, PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: [HACKERS] SGML index build fix
Date: 2007-01-09 22:20:00
Message-ID: 200701092220.l09MK0s21728@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches


Patch applied.

---------------------------------------------------------------------------

Bruce Momjian wrote:
> Tom Lane wrote:
> > Bruce Momjian <bruce(at)momjian(dot)us> writes:
> > > Peter Eisentraut wrote:
> > >> The problem is that this requires two runs even to proof the documentation,
> > >> which I think no one wants.
> >
> > > So what would the API be to signal you want a draft build?
> > > gmake DRAFT="Y" html
> >
> > I'd vote for
> >
> > gmake draft
>
> OK, I used that syntax (and needed another use of recursion to do it).
> Attached.
>
> --
> Bruce Momjian bruce(at)momjian(dot)us
> EnterpriseDB http://www.enterprisedb.com
>
> + If your life is a hard drive, Christ can be your backup. +

> Index: doc/src/sgml/Makefile
> ===================================================================
> RCS file: /cvsroot/pgsql/doc/src/sgml/Makefile,v
> retrieving revision 1.87
> diff -c -c -r1.87 Makefile
> *** doc/src/sgml/Makefile 7 Jan 2007 08:49:31 -0000 1.87
> --- doc/src/sgml/Makefile 9 Jan 2007 03:13:06 -0000
> ***************
> *** 65,71 ****
> ## Man pages
> ##
>
> ! .PHONY: man
>
> DEFAULTSECTION := $(sqlmansect_dummy)
>
> --- 65,71 ----
> ## Man pages
> ##
>
> ! .PHONY: man draft
>
> DEFAULTSECTION := $(sqlmansect_dummy)
>
> ***************
> *** 95,115 ****
> ifeq ($(vpath_build), yes)
> @cp $(srcdir)/stylesheet.css .
> endif
>
>
> COLLATEINDEX := LC_ALL=C $(PERL) $(COLLATEINDEX) -f -g
>
> ! # If HTML.index does not exist, create a dummy bookindex.sgml. During the
> ! # next build, create bookindex.sgml with the proper index contents. A proper
> ! # bookindex.sgml is required to have an index in the output.
> ! ifeq (,$(wildcard HTML.index))
> ! bookindex.sgml:
> ! $(COLLATEINDEX) -o $@ -N
> else
> ! bookindex.sgml: HTML.index
> ! $(COLLATEINDEX) -i 'bookindex' -o $@ $<
> endif
>
> version.sgml: $(top_builddir)/src/Makefile.global
> { \
> echo "<!entity version \"$(VERSION)\">"; \
> --- 95,132 ----
> ifeq ($(vpath_build), yes)
> @cp $(srcdir)/stylesheet.css .
> endif
> + ifndef DRAFT
> + @cmp -s HTML.index.start HTML.index || $(MAKE) $*
> + endif
>
>
> COLLATEINDEX := LC_ALL=C $(PERL) $(COLLATEINDEX) -f -g
>
> ! draft:
> ! ifndef DRAFT
> ! ifneq ($(MAKECMDGOALS), draft)
> ! # Call ourselves with the DRAFT value set. This seems to be the only
> ! # way to set gmake variables in a rule.
> ! @$(MAKE) DRAFT="Y" $(MAKECMDGOALS))
> else
> ! # run default 'all' rule
> ! @$(MAKE) DRAFT="Y" html
> ! 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
> { \
> echo "<!entity version \"$(VERSION)\">"; \
> ***************
> *** 141,155 ****
> --- 158,184 ----
>
> %-A4.tex-ps: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml
> $(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
> $(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
> $(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
> $(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
> @rm -f $*.aux $*.log
> ***************
> *** 291,297 ****
> # print
> rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.eps *.fot
> # index
> ! rm -f HTML.index $(GENERATED_SGML)
> # text
> rm -f INSTALL HISTORY regress_README
> # XSLT
> --- 320,326 ----
> # print
> rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.eps *.fot
> # index
> ! rm -f HTML.index HTML.index.start $(GENERATED_SGML)
> # text
> rm -f INSTALL HISTORY regress_README
> # XSLT
> Index: doc/src/sgml/docguide.sgml
> ===================================================================
> RCS file: /cvsroot/pgsql/doc/src/sgml/docguide.sgml,v
> retrieving revision 1.63
> diff -c -c -r1.63 docguide.sgml
> *** doc/src/sgml/docguide.sgml 15 Dec 2006 16:50:07 -0000 1.63
> --- doc/src/sgml/docguide.sgml 9 Jan 2007 03:13:06 -0000
> ***************
> *** 542,552 ****
> </para>
>
> <para>
> ! When the HTML documentation is built, the process also generates
> ! the linking information for the index entries. Thus, if you want
> ! your documentation to have a concept index at the end, you need to
> ! build the HTML documentation once, and then build the
> ! documentation again in whatever format you like.
> </para>
>
> <para>
> --- 542,553 ----
> </para>
>
> <para>
> ! To create a proper index, the build might process several identical
> ! stages. If you do not care about an index, and just want to
> ! proof-read the output, use <literal>draft</>:
> ! <screen>
> ! <prompt>doc/src/sgml$ </prompt><userinput>gmake draft html</userinput>
> ! </screen>
> </para>
>
> <para>

>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match

--
Bruce Momjian bruce(at)momjian(dot)us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2007-01-09 22:24:38 Re: [HACKERS] Patch to log usage of temporary files
Previous Message Bruce Momjian 2007-01-09 22:16:49 Re: [HACKERS] Patch to log usage of temporary files

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2007-01-09 22:20:29 Re: gendef fixes
Previous Message Bruce Momjian 2007-01-09 22:16:49 Re: [HACKERS] Patch to log usage of temporary files