Peter Eisentraut wrote:
> Bruce Momjian wrote:
> > The rule re-runs the makefile for the specific target, and the target
> > modifies HTML.index, or it is only the HTML rule that modifies that.
> 
> Only the html rule modifies HTML.index.
> 
> > That was a question I had.  If that is true, it has to be:
> >
> >     %-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) html $@
> >     endif
> 
> It would much easier to just run the html rule before the other stuff.

OK, so just make HTML a depenency for those.  Patch attached and
applied.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  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.89
diff -c -c -r1.89 Makefile
*** doc/src/sgml/Makefile	10 Jan 2007 01:57:15 -0000	1.89
--- doc/src/sgml/Makefile	10 Jan 2007 17:45:35 -0000
***************
*** 89,94 ****
--- 89,95 ----
  
  .PHONY: html
  
+ # This is run for all output formats because we need bookindex.sgml
  html: postgres.sgml $(ALLSGML) stylesheet.dsl
  	@rm -f *.html
  	$(JADE) $(JADEFLAGS) $(SPFLAGS) $(SGMLINCLUDE) $(CATALOG) -d stylesheet.dsl -i output-html -t sgml $<
***************
*** 96,130 ****
  	@cp $(srcdir)/stylesheet.css .
  endif
  ifndef DRAFT
! 	@cmp -s HTML.index.start HTML.index || $(MAKE) $(MAKECMDGOALS)
  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" all
  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
--- 97,132 ----
  	@cp $(srcdir)/stylesheet.css .
  endif
  ifndef DRAFT
! 	@cmp -s HTML.index.start HTML.index || $(MAKE) $@
  endif
  
  
  COLLATEINDEX := LC_ALL=C $(PERL) $(COLLATEINDEX) -f -g
  
+ # The draft rule calls $(MAKE) again and sets the DRAFT variable.
+ # This seems to be the only way to set gmake variables in a rule.
  draft:
  ifndef DRAFT
  ifneq ($(MAKECMDGOALS), draft)
  	@$(MAKE) DRAFT="Y" $(MAKECMDGOALS)
  else
! # simulate $(MAKE) with no arguments
  	@$(MAKE) DRAFT="Y" all
  endif
  endif
  
+ # bookindex.sgml is required so there is a proper index for all output formats
  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.
  	test ! -s HTML.index || $(COLLATEINDEX) -i 'bookindex' -o $@ $<
  # save copy of HTML.index for later comparison
  	@cp HTML.index HTML.index.start
  
+ # HTML.index is used to create bookindex.sgml
  HTML.index:
! # create an empty HTML.index if it does not exist
  	@$(if $(wildcard HTML.index), , touch HTML.index)
  
  version.sgml: $(top_builddir)/src/Makefile.global
***************
*** 156,184 ****
  
  JADE.tex.call = $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d $(srcdir)/stylesheet.dsl -t tex -V tex-backend -i output-print
  
! %-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
--- 158,174 ----
  
  JADE.tex.call = $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d $(srcdir)/stylesheet.dsl -t tex -V tex-backend -i output-print
  
! %-A4.tex-ps: %.sgml $(ALLSGML) html
  	$(JADE.tex.call) -V texdvi-output -V '%paper-type%'=A4 -o $@ $<
  
! %-US.tex-ps: %.sgml $(ALLSGML) html
  	$(JADE.tex.call) -V texdvi-output -V '%paper-type%'=USletter -o $@ $<
  
! %-A4.tex-pdf: %.sgml $(ALLSGML) html
  	$(JADE.tex.call) -V texpdf-output -V '%paper-type%'=A4 -o $@ $<
  
! %-US.tex-pdf: %.sgml $(ALLSGML) html
  	$(JADE.tex.call) -V texpdf-output -V '%paper-type%'=USletter -o $@ $<
  
  %.dvi: %.tex-ps
  	@rm -f $*.aux $*.log
---------------------------(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

Reply via email to