Re: [PATCHES] SGML index build fix - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [PATCHES] SGML index build fix
Date
Msg-id 200701092220.l09MK0s21728@momjian.us
Whole thread Raw
In response to Re: [PATCHES] SGML index build fix  (Bruce Momjian <bruce@momjian.us>)
Responses Re: [PATCHES] SGML index build fix
Re: [PATCHES] SGML index build fix
Re: [PATCHES] SGML index build fix
List pgsql-hackers
Patch applied.

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

Bruce Momjian wrote:
> Tom Lane wrote:
> > Bruce Momjian <bruce@momjian.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@momjian.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@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

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

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [PATCHES] Patch to log usage of temporary files
Next
From: Tom Lane
Date:
Subject: Re: [PATCHES] Patch to log usage of temporary files