Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-09 Thread Bruce Momjian
Peter Eisentraut wrote:
> Bruce Momjian wrote:
> > > ! draft:
> > > ! ifndef DRAFT
> > > ! ifneq ($(MAKECMDGOALS), draft)
> 
> How could this condition ever match?

On first call, 'draft' might be set, but in the recursive call, this
code will not be reached because DRAFT iss set.

---

> 
> > > ! # Call ourselves with the DRAFT value set. ?This seems to be the only
> > > ! # way to set gmake variables in a rule. 
> > > ! [EMAIL PROTECTED](MAKE) DRAFT="Y" $(MAKECMDGOALS))
> > > ? else
> > > ! # run default 'all' rule
> > > ! [EMAIL PROTECTED](MAKE) DRAFT="Y" html
> > > ! endif
> > > ? endif
> 
> -- 
> Peter Eisentraut
> http://developer.postgresql.org/~petere/
> 
> ---(end of broadcast)---
> TIP 3: Have you checked our extensive FAQ?
> 
>http://www.postgresql.org/docs/faq

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

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

---(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


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-09 Thread Bruce Momjian
Peter Eisentraut wrote:
> Bruce Momjian wrote:
> > > + ifndef DRAFT
> > > + [EMAIL PROTECTED] -s HTML.index.start HTML.index || $(MAKE) $*
> > > + endif
> 
> Why are you using $*?  This isn't a pattern rule.
> 

Sorry, my mistake.  Here is an patch to fix that.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://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.88
diff -c -c -r1.88 Makefile
*** doc/src/sgml/Makefile	9 Jan 2007 22:19:36 -	1.88
--- doc/src/sgml/Makefile	10 Jan 2007 01:23:40 -
***
*** 96,102 
  	@cp $(srcdir)/stylesheet.css .
  endif
  ifndef DRAFT
! 	@cmp -s HTML.index.start HTML.index || $(MAKE) $*
  endif
  
  
--- 96,102 
  	@cp $(srcdir)/stylesheet.css .
  endif
  ifndef DRAFT
! 	@cmp -s HTML.index.start HTML.index || $(MAKE) $(MAKECMDGOALS)
  endif
  
  
***
*** 107,113 
  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" all
--- 107,113 
  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" all
***
*** 159,183 
  %-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
--- 159,183 
  %-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

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-09 Thread Bruce Momjian
Peter Eisentraut wrote:
> Bruce Momjian wrote:
> > > ? %-A4.tex-ps: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml
> > > ? $(JADE.tex.call) -V texdvi-output -V '%paper-type%'=A4 -o $@ $<
> > > + ifndef DRAFT
> > > + [EMAIL PROTECTED] -s HTML.index.start HTML.index || $(MAKE) $*
> > > + endif
> 
> What is the point of that?

If HTML.index changed during the build, we need to rerun it until it is
unchanged.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

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

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-09 Thread Peter Eisentraut
Bruce Momjian wrote:
> > ! draft:
> > ! ifndef DRAFT
> > ! ifneq ($(MAKECMDGOALS), draft)

How could this condition ever match?

> > ! # Call ourselves with the DRAFT value set.  This seems to be the only
> > ! # way to set gmake variables in a rule. 
> > ! [EMAIL PROTECTED](MAKE) DRAFT="Y" $(MAKECMDGOALS))
> >   else
> > ! # run default 'all' rule
> > ! [EMAIL PROTECTED](MAKE) DRAFT="Y" html
> > ! endif
> >   endif

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(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


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-09 Thread Peter Eisentraut
Bruce Momjian wrote:
> > + ifndef DRAFT
> > + [EMAIL PROTECTED] -s HTML.index.start HTML.index || $(MAKE) $*
> > + endif

Why are you using $*?  This isn't a pattern rule.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-09 Thread Peter Eisentraut
Bruce Momjian wrote:
> >   %-A4.tex-ps: %.sgml $(ALLSGML) stylesheet.dsl bookindex.sgml
> >   $(JADE.tex.call) -V texdvi-output -V '%paper-type%'=A4 -o $@ $<
> > + ifndef DRAFT
> > + [EMAIL PROTECTED] -s HTML.index.start HTML.index || $(MAKE) $*
> > + endif

What is the point of that?

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-09 Thread Bruce Momjian

Patch applied.

---

Bruce Momjian wrote:
> Tom Lane wrote:
> > Bruce Momjian <[EMAIL PROTECTED]> 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   [EMAIL PROTECTED]
>   EnterpriseDBhttp://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 -   1.87
> --- doc/src/sgml/Makefile 9 Jan 2007 03:13:06 -
> ***
> *** 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 ""; \
> --- 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 ""; \
> ***
> *** 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/

Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-08 Thread Bruce Momjian
Tom Lane wrote:
> Bruce Momjian <[EMAIL PROTECTED]> 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   [EMAIL PROTECTED]
  EnterpriseDBhttp://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 -   1.87
--- doc/src/sgml/Makefile   9 Jan 2007 03:13:06 -
***
*** 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 ""; \
--- 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 ""; \
***
*** 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 -  1.63
--- doc/src/sgml/docguide.sgml  9 Jan 2007 03:13:06 -
***
*** 542,552 
 
  
 
! 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

Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-08 Thread Tom Lane
Bruce Momjian <[EMAIL PROTECTED]> 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

regards, tom lane

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-08 Thread Peter Eisentraut
Am Montag, 8. Januar 2007 05:10 schrieb Bruce Momjian:
> Here is a patch that runs the build twice when HTML.index does not
> exist, and once every time after that.  This is not ideal, but it is a
> start.

The problem is that this requires two runs even to proof the documentation,
which I think no one wants.

> ! # If HTML.index is zero length, create a dummy bookindex.sgml
> ! test -s HTML.index || $(COLLATEINDEX) -o $@ -N
> ! # If HTML.index is valid, create valid bookindex.sgml.  This 
> ! # is required so the output has a proper index.
> ! test ! -s HTML.index || $(COLLATEINDEX) -i 'bookindex' -o $@ $<

Please indent the comments properly so they don't appear in the output.

> ! HTML.index:
> ! test -f HTML.index || (touch HTML.index && $(MAKE) $(MAKECMDGOALS))

I think this is partially redundant.  If HTML.index exists, then this
rule will never be called.

> ! rm -f HTML.manifest *.html *.gif bookindex.skip

I don't see bookindex.skip mentioned anywhere else.  Left over from a
previous version?

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-07 Thread Bruce Momjian
Peter Eisentraut wrote:
> Tom Lane wrote:
> > Perhaps even more to the point, what makes you think that someone
> > will notice the warning?  If the docs build is one step in an
> > automated build process, this seems unlikely.
> 
> Taking a closer look, it's pretty much guaranteed that no one will see 
> them, because the targets they are attached to are intermediate, 
> normally followed by latex runs.

Here is a patch that runs the build twice when HTML.index does not
exist, and once every time after that.  This is not ideal, but it is a
start.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://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 -	1.87
--- doc/src/sgml/Makefile	8 Jan 2007 04:02:45 -
***
*** 99,114 
  
  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
  	{ \
--- 99,115 
  
  COLLATEINDEX := LC_ALL=C $(PERL) $(COLLATEINDEX) -f -g
  
  bookindex.sgml: HTML.index
! 	# If HTML.index is zero length, create a dummy bookindex.sgml
! 	test -s HTML.index || $(COLLATEINDEX) -o $@ -N
! 	# If HTML.index is valid, create valid bookindex.sgml.  This 
! 	# is required so the output has a proper index.
! 	test ! -s HTML.index || $(COLLATEINDEX) -i 'bookindex' -o $@ $<
! 
! # If HTML.index does not exist, create an empty file and recusively call
! # our own Makefile to create a valid bookindex.sgml.
! HTML.index:
! 	test -f HTML.index || (touch HTML.index && $(MAKE) $(MAKECMDGOALS))
  
  version.sgml: $(top_builddir)/src/Makefile.global
  	{ \
***
*** 285,291 
  
  clean distclean maintainer-clean:
  # HTML
! 	rm -f HTML.manifest *.html *.gif
  # man
  	rm -rf *.1 *.$(DEFAULTSECTION) man1 man$(DEFAULTSECTION) manpage.refs manpage.links manpage.log
  # print
--- 286,292 
  
  clean distclean maintainer-clean:
  # HTML
! 	rm -f HTML.manifest *.html *.gif bookindex.skip
  # man
  	rm -rf *.1 *.$(DEFAULTSECTION) man1 man$(DEFAULTSECTION) manpage.refs manpage.links manpage.log
  # print

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-07 Thread Gavin Sherry
On Sun, 7 Jan 2007, Tom Lane wrote:

> Peter Eisentraut <[EMAIL PROTECTED]> writes:
> > Tom Lane wrote:
> >> Perhaps even more to the point, what makes you think that someone
> >> will notice the warning?  If the docs build is one step in an
> >> automated build process, this seems unlikely.
>
> > Taking a closer look, it's pretty much guaranteed that no one will see
> > them, because the targets they are attached to are intermediate,
> > normally followed by latex runs.
>
> If we think this is a problem, ISTM the correct answer is to just force
> a repeat jade run when doing "make all".  The only objection to that
> AFAICS is that when you're doing docs work and only need a draft to
> look at, you'd rather it not run twice.  But perhaps we could address
> that by providing a separate target, "make draft" say, that runs jade
> but once.

That's a nice approach. Those working on the docs will know about the
draft target and those just wanting to build the docs for publication will
get the result.

Gavin

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-07 Thread Tom Lane
Peter Eisentraut <[EMAIL PROTECTED]> writes:
> Tom Lane wrote:
>> Perhaps even more to the point, what makes you think that someone
>> will notice the warning?  If the docs build is one step in an
>> automated build process, this seems unlikely.

> Taking a closer look, it's pretty much guaranteed that no one will see 
> them, because the targets they are attached to are intermediate, 
> normally followed by latex runs.

If we think this is a problem, ISTM the correct answer is to just force
a repeat jade run when doing "make all".  The only objection to that
AFAICS is that when you're doing docs work and only need a draft to
look at, you'd rather it not run twice.  But perhaps we could address
that by providing a separate target, "make draft" say, that runs jade
but once.

regards, tom lane

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-07 Thread Peter Eisentraut
Tom Lane wrote:
> Perhaps even more to the point, what makes you think that someone
> will notice the warning?  If the docs build is one step in an
> automated build process, this seems unlikely.

Taking a closer look, it's pretty much guaranteed that no one will see 
them, because the targets they are attached to are intermediate, 
normally followed by latex runs.
-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-07 Thread Tom Lane
Bruce Momjian <[EMAIL PROTECTED]> writes:
> Martijn van Oosterhout wrote:
>> I don't know enough about the relevent tool to know if they actually
>> generate a warning about whether they need to be rerun. In any case it
>> seems a much better approach to simply run it again when needed rather
>> than printing a warning.

> The problem is that there is no indication from the make (no warning)
> that you have to rerun, and it isn't something people are used to doing
> like with latex.

If the objective is to make it safe against people who do not understand
how the tools work, then I still complain that this method is
insufficient.  All you are testing is whether an index was generated,
not whether it was correct (ie, up to date).  A valid test would be
along the lines of comparing the pre-run and post-run copies of the
index data to see if they're the same.

Perhaps even more to the point, what makes you think that someone will
notice the warning?  If the docs build is one step in an automated build
process, this seems unlikely.

regards, tom lane

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-07 Thread Bruce Momjian
Martijn van Oosterhout wrote:
-- Start of PGP signed section.
> On Sun, Jan 07, 2007 at 12:42:06AM -0500, Bruce Momjian wrote:
> > Joshua D. Drake wrote:
> > > On Sat, 2007-01-06 at 23:38 -0500, Tom Lane wrote:
> > > > Everyone using these tools knows about the two-pass behavior.
> > > 
> > > No, not everyone knows. In fact I would argue that most do not know. It
> > > isn't intuitive to the process. You *expect* that an index will be made.
> > 
> > The idea for the warning message actually came from Peter.
> 
> FWIW, I have this problem with LaTeX also, which needs multiple passes
> occasionally to fix cross-references and idexes and stuff. The solution
> I have in the makefile is a fragment like the following:
> 
> while egrep -q "^LaTeX Warning:.*Rerun to" logfile ; do
>   rm logfile
>   latex taxfile
> done

Our Makefile has:

%.dvi: %.tex-ps
@rm -f $*.aux $*.log
# multiple runs are necessary to create proper intra-document 
links
jadetex $<
jadetex $<
jadetex $<

so there should be no reason for you to have to rerun.

> 
> I don't know enough about the relevent tool to know if they actually
> generate a warning about whether they need to be rerun. In any case it
> seems a much better approach to simply run it again when needed rather
> than printing a warning.

The problem is that there is no indication from the make (no warning)
that you have to rerun, and it isn't something people are used to doing
like with latex.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

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

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-07 Thread Martijn van Oosterhout
On Sun, Jan 07, 2007 at 12:42:06AM -0500, Bruce Momjian wrote:
> Joshua D. Drake wrote:
> > On Sat, 2007-01-06 at 23:38 -0500, Tom Lane wrote:
> > > Everyone using these tools knows about the two-pass behavior.
> > 
> > No, not everyone knows. In fact I would argue that most do not know. It
> > isn't intuitive to the process. You *expect* that an index will be made.
> 
> The idea for the warning message actually came from Peter.

FWIW, I have this problem with LaTeX also, which needs multiple passes
occasionally to fix cross-references and idexes and stuff. The solution
I have in the makefile is a fragment like the following:

while egrep -q "^LaTeX Warning:.*Rerun to" logfile ; do
  rm logfile
  latex taxfile
done

I don't know enough about the relevent tool to know if they actually
generate a warning about whether they need to be rerun. In any case it
seems a much better approach to simply run it again when needed rather
than printing a warning.

Have a nice day,
-- 
Martijn van Oosterhout  http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to 
> litigate.


signature.asc
Description: Digital signature


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-06 Thread Bruce Momjian
Joshua D. Drake wrote:
> On Sat, 2007-01-06 at 23:38 -0500, Tom Lane wrote:
> > Bruce Momjian <[EMAIL PROTECTED]> writes:
> > > The attached patch warns users when they create documentation output
> > > that has no index, and suggests re-running 'gmake'.
> > 
> > This is just useless noise.  If it could tell the difference between an
> > up-to-date index and a not-up-to-date one, there might be some value
> > to it ... but as-is I think it's just getting in the user's face.
> > Everyone using these tools knows about the two-pass behavior.
> 
> No, not everyone knows. In fact I would argue that most do not know. It
> isn't intuitive to the process. You *expect* that an index will be made.

The idea for the warning message actually came from Peter.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

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

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-06 Thread Joshua D. Drake
On Sat, 2007-01-06 at 23:38 -0500, Tom Lane wrote:
> Bruce Momjian <[EMAIL PROTECTED]> writes:
> > The attached patch warns users when they create documentation output
> > that has no index, and suggests re-running 'gmake'.
> 
> This is just useless noise.  If it could tell the difference between an
> up-to-date index and a not-up-to-date one, there might be some value
> to it ... but as-is I think it's just getting in the user's face.
> Everyone using these tools knows about the two-pass behavior.

No, not everyone knows. In fact I would argue that most do not know. It
isn't intuitive to the process. You *expect* that an index will be made.

Joshua D. Drake

-- 

  === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
 http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate




---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-06 Thread Bruce Momjian
Bruce Momjian wrote:
> Tom Lane wrote:
> > Bruce Momjian <[EMAIL PROTECTED]> writes:
> > > The attached patch warns users when they create documentation output
> > > that has no index, and suggests re-running 'gmake'.
> > 
> > This is just useless noise.  If it could tell the difference between an
> > up-to-date index and a not-up-to-date one, there might be some value
> > to it ... but as-is I think it's just getting in the user's face.
> > Everyone using these tools knows about the two-pass behavior.
> 
> I certainly did not, and it warns only when an invalid HTML.index is
> used.

And the people creating our PDFs didn't know because we often have to
update the web site with valid ones that have indexes.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

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

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-06 Thread Bruce Momjian
Tom Lane wrote:
> Bruce Momjian <[EMAIL PROTECTED]> writes:
> > The attached patch warns users when they create documentation output
> > that has no index, and suggests re-running 'gmake'.
> 
> This is just useless noise.  If it could tell the difference between an
> up-to-date index and a not-up-to-date one, there might be some value
> to it ... but as-is I think it's just getting in the user's face.
> Everyone using these tools knows about the two-pass behavior.

I certainly did not, and it warns only when an invalid HTML.index is
used.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

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

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [HACKERS] [PATCHES] SGML index build fix

2007-01-06 Thread Tom Lane
Bruce Momjian <[EMAIL PROTECTED]> writes:
> The attached patch warns users when they create documentation output
> that has no index, and suggests re-running 'gmake'.

This is just useless noise.  If it could tell the difference between an
up-to-date index and a not-up-to-date one, there might be some value
to it ... but as-is I think it's just getting in the user's face.
Everyone using these tools knows about the two-pass behavior.

I just got done reading an interesting comparison of MS Vista versus
Mac OS X:
http://www.informationweek.com/news/showArticle.jhtml?articleID=196800670
The guy's very first complaint about Vista is how it demands your
attention constantly with trivial warning messages.  This seems in much
the same vein.

regards, tom lane

---(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