Per thread starting here http://archives.postgresql.org/pgsql-bugs/2010-03/msg00049.php
and ending here http://archives.postgresql.org/pgsql-bugs/2010-03/msg00110.php and earlier discussions of similar nature, here is a patch that separates the documentation build and installation into separate top-level targets 'make docs' and 'make install-docs', also dependencies of 'make world' and 'make install-world'. The significant change is that the documentation is no longer installed by default (but the availability of the 'world' target might alleviate that). Please check it out.
diff --git a/GNUmakefile.in b/GNUmakefile.in index 1380901..51e7a96 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -9,33 +9,37 @@ top_builddir = . include $(top_builddir)/src/Makefile.global all: - $(MAKE) -C doc all $(MAKE) -C src all $(MAKE) -C config all @echo "All of PostgreSQL successfully made. Ready to install." +docs: + $(MAKE) -C doc all + world: - $(MAKE) -C doc html + $(MAKE) -C doc all $(MAKE) -C src all $(MAKE) -C config all $(MAKE) -C contrib all - @echo "PostgreSQL, contrib and HTML documentation successfully made. Ready to install." + @echo "PostgreSQL, contrib, and documentation successfully made. Ready to install." html man: $(MAKE) -C doc $@ install: - $(MAKE) -C doc $@ $(MAKE) -C src $@ $(MAKE) -C config $@ @echo "PostgreSQL installation complete." +install-docs: + $(MAKE) -C doc install + install-world: $(MAKE) -C doc install $(MAKE) -C src install $(MAKE) -C config install $(MAKE) -C contrib install - @echo "PostgreSQL and contrib installation complete." + @echo "PostgreSQL, contrib, and documentation installation complete." installdirs uninstall coverage: $(MAKE) -C doc $@ @@ -139,5 +143,4 @@ distcheck: dist rm -rf $(distdir) $(dummy) @echo "Distribution integrity checks out." -.PHONY: dist distdir distcheck -unexport split-dist +.PHONY: dist distdir distcheck docs install-docs diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile index f117f80..e7f4033 100644 --- a/doc/src/sgml/Makefile +++ b/doc/src/sgml/Makefile @@ -22,7 +22,9 @@ top_builddir = ../../.. include $(top_builddir)/src/Makefile.global -distprep: html man +all: html man + +distprep: html distprep-man ifndef COLLATEINDEX @@ -73,7 +75,7 @@ override SPFLAGS += -wall -wno-unused-param -wno-empty -wfully-tagged ## Man pages ## -man: man-stamp +man distprep-man: man-stamp man-stamp: stylesheet-man.xsl postgres.xml $(XSLTPROC) $(XSLTPROCFLAGS) $(XSLTPROC_MAN_FLAGS) $^ @@ -273,17 +275,12 @@ check: postgres.sgml $(ALMOSTALLSGML) check-tabs vpathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,. $(VPATH))))) -found_html = $(wildcard html-stamp $(srcdir)/html-stamp) +install: install-html -ifneq ($(wildcard man-stamp $(srcdir)/man-stamp),) -# SCO OpenServer's man system is sufficiently different to not bother. ifneq ($(PORTNAME), sco) -found_man = yes -endif +install: install-man endif -install: $(if $(found_html),install-html) $(if $(found_man),install-man) - installdirs: $(MKDIR_P) '$(DESTDIR)$(htmldir)'/html $(addprefix '$(DESTDIR)$(mandir)'/man, 1 3 $(sqlmansectnum)) @@ -324,8 +321,7 @@ fixed_sql_manpage_files = $(patsubst $(srcdir)/man7/%.7,fixedman/man$(sqlmansect fixed_manpage_files = $(fixed_nonsql_manpage_files) $(fixed_sql_manpage_files) -all: all-man -all-man: $(fixed_manpage_files) +man: $(fixed_manpage_files) $(fixed_nonsql_manpage_files): fixedman/%: % @$(MKDIR_P) $(dir $@) @@ -335,7 +331,7 @@ $(fixed_sql_manpage_files): fixedman/man$(sqlmansectnum)/%.$(sqlmansect): man7/% @$(MKDIR_P) $(dir $@) $(fix_sqlmansectnum) $< >$@ -install-man: all-man +install-man: man cp -R $(sort $(dir $(fixed_manpage_files))) '$(DESTDIR)$(mandir)' clean: clean-man diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index ef20ee3..5da97c5 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -1543,8 +1543,9 @@ All of PostgreSQL is successfully made. Ready to install. </para> <para> - If you want to build everything that can be built, including the HTML - documentation and the Additional Modules, type instead: + If you want to build everything that can be built, including the + documentation (HTML and man pages), and the additional modules + (<filename>contrib</filename>), type instead: <screen> <userinput>gmake world</userinput> </screen> @@ -1607,10 +1608,18 @@ PostgreSQL, contrib and HTML documentation successfully made. Ready to install. </para> <para> + To install the documentation (HTML and man pages), enter: +<screen> +<userinput>gmake install-docs</userinput> +</screen> + </para> + + <para> If you built the world above, type instead: <screen> <userinput>gmake install-world</userinput> </screen> + This also installs the documentation. </para> <para>
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers