From: Ian Lynagh Date: Tue, 23 Oct 2007 23:46:24 +0000 (+0000) Subject: Fix installing the documentation in the bindists X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=4217c6caef9f6d261df1449c590331878a493f14 Fix installing the documentation in the bindists --- diff --git a/Makefile b/Makefile index a788dac..287754a 100644 --- a/Makefile +++ b/Makefile @@ -271,7 +271,7 @@ BIN_DIST_TOP= distrib/Makefile \ ANNOUNCE \ LICENSE \ install-sh \ - extra-gcc-opts.in \ + extra-gcc-opts.in \ config.guess \ config.sub \ aclocal.m4 @@ -294,17 +294,19 @@ binary-dist-pre:: cp mk/package.mk $(BIN_DIST_DIR)/mk/ cp mk/install.mk $(BIN_DIST_DIR)/mk/ cp mk/recurse.mk $(BIN_DIST_DIR)/mk/ + cp mk/fptools.css $(BIN_DIST_DIR)/mk/ $(MKDIRHIER) $(BIN_DIST_DIR)/lib/$(TARGETPLATFORM) $(MKDIRHIER) $(BIN_DIST_DIR)/share binary-dist:: - $(MAKE) -C gmp binary-dist DOING_BIN_DIST=YES - $(MAKE) -C includes binary-dist DOING_BIN_DIST=YES - $(MAKE) -C compiler binary-dist DOING_BIN_DIST=YES $(INSTALL_STAGE) - # XXX $(MAKE) -C docs binary-dist DOING_BIN_DIST=YES - $(MAKE) -C rts binary-dist DOING_BIN_DIST=YES - $(MAKE) -C driver binary-dist DOING_BIN_DIST=YES - $(MAKE) -C utils binary-dist DOING_BIN_DIST=YES + $(MAKE) -C gmp binary-dist DOING_BIN_DIST=YES + $(MAKE) -C includes binary-dist DOING_BIN_DIST=YES + $(MAKE) -C compiler binary-dist DOING_BIN_DIST=YES $(INSTALL_STAGE) + $(MAKE) -C rts binary-dist DOING_BIN_DIST=YES + $(MAKE) -C driver binary-dist DOING_BIN_DIST=YES + $(MAKE) -C utils binary-dist DOING_BIN_DIST=YES + $(MAKE) -C docs binary-dist DOING_BIN_DIST=YES + $(MAKE) -C libraries binary-dist DOING_BIN_DIST=YES VARFILE=$(BIN_DIST_DIR)/Makefile-vars.in @@ -325,69 +327,11 @@ binary-dist:: echo "GhcWithInterpreter = $(GhcWithInterpreter)" >> $(VARFILE) echo "GhcHasReadline = $(GhcHasReadline)" >> $(VARFILE) echo "BootingFromHc = $(BootingFromHc)" >> $(VARFILE) + echo "XMLDocWays = $(XMLDocWays)" >> $(VARFILE) cat distrib/Makefile-bin-vars.in >> $(VARFILE) @echo "Generating a shippable configure script.." $(MV) $(BIN_DIST_DIR)/configure-bin.ac $(BIN_DIST_DIR)/configure.ac ( cd $(BIN_DIST_DIR); autoreconf ) - -# -# binary dist'ing the documentation. -# The default documentation to build/install is given below; overrideable -# via build.mk or the 'make' command-line. -# -# If BINDIST_DOC_WAYS is set, use that -# If XMLDocWays is set, use that -# Otherwise, figure out what we can build based on configure results - -ifndef BINDIST_DOC_WAYS - -ifneq "$(XMLDocWays)" "" -BINDIST_DOC_WAYS = $(XMLDocWays) -else -ifneq "$(XSLTPROC)" "" -BINDIST_DOC_WAYS = html -ifneq "$(FOP)" "" -BINDIST_DOC_WAYS += ps pdf -else -ifneq "$(PDFXMLTEX)" "" -BINDIST_DOC_WAYS += pdf -endif -ifneq "$(XMLTEX)" "" -ifneq "$(DVIPS)" "" -BINDIST_DOC_WAYS += ps -endif # DVIPS -endif # XMLTEX -endif # FOP -endif # XSLTPROC -endif # XMLDocWays - -endif # BINDIST_DOC_WAYS - -ifneq "$(DIR_DOCBOOK_XSL)" "" -.PHONY: binary-dist-doc-% - -BINARY_DIST_DOC_RULES=$(foreach d,$(BinDistDirs),binary-dist-doc-$d) - -binary-dist :: $(BINARY_DIST_DOC_RULES) - -$(BINARY_DIST_DOC_RULES): binary-dist-doc-%: - $(MAKE) -C $* $(MFLAGS) $(BINDIST_DOC_WAYS) - $(MAKE) -C $* $(MFLAGS) install-docs \ - MAKING_BIN_DIST=1 \ - XMLDocWays="$(BINDIST_DOC_WAYS)" \ - prefix=$(BIN_DIST_DIR) \ - exec_prefix=$(BIN_DIST_DIR) \ - bindir=$(BIN_DIST_DIR)/bin/$(TARGETPLATFORM) \ - libdir=$(BIN_DIST_DIR)/lib/$(TARGETPLATFORM) \ - libexecdir=$(BIN_DIST_DIR)/lib/$(TARGETPLATFORM) \ - datadir=$(BIN_DIST_DIR)/share -endif - -.PHONY: binary-dist-doc-% - -binary-dist:: - $(MAKE) -C libraries binary-dist - endif # Tar up the distribution and build a manifest diff --git a/distrib/Makefile b/distrib/Makefile index 06c1f29..adf39ac 100644 --- a/distrib/Makefile +++ b/distrib/Makefile @@ -1,7 +1,7 @@ include Makefile-vars -.PHONY: mk-version-symlinks install +.PHONY: install postinstall denounce show-install-setup #.PHONY: in-place # This has bitrotted: @@ -16,20 +16,18 @@ include Makefile-vars install :: $(INSTALL_DIR) $(bindir) - (cd share; find . -type d -exec sh -c '$(INSTALL_DIR) $(datadir)/$$0' {} \; ) install:: - $(MAKE) -C includes install DOING_BIN_DIST=YES - $(MAKE) -C driver install DOING_BIN_DIST=YES - $(MAKE) -C utils install DOING_BIN_DIST=YES - $(MAKE) -C rts install DOING_BIN_DIST=YES - $(MAKE) -C libraries install DOING_BIN_DIST=YES - $(MAKE) -C compiler install DOING_BIN_DIST=YES + $(MAKE) -C includes install DOING_BIN_DIST=YES + $(MAKE) -C driver install DOING_BIN_DIST=YES + $(MAKE) -C utils install DOING_BIN_DIST=YES + $(MAKE) -C rts install DOING_BIN_DIST=YES + $(MAKE) -C libraries install DOING_BIN_DIST=YES + $(MAKE) -C compiler install DOING_BIN_DIST=YES + $(MAKE) -C docs install-docs DOING_BIN_DIST=YES $(INSTALL_DATA) $(INSTALL_OPTS) extra-gcc-opts $(libdir) -install :: install-docs postinstall denounce - -.PHONY: postinstall denounce +install :: postinstall denounce denounce: @echo @@ -60,20 +58,3 @@ show-install-setup: @echo "libdir = $(libdir) (libdir = $(libdir))" @echo "datadir = $(datadir) (datadir = $(datadir))" -# -# Documentation targets: install-docs. -# - -.PHONY: show-install-setup install-docs install-dirs-docs - -install-docs : install-dirs-docs - if test -d share/html ; then $(CP) -r share/html/* $(htmldir) ; fi - set -e; for i in share/*.ps; do \ - if test -f "$$i"; then \ - $(CP) $$i $(psdir) ; \ - fi \ - done - -install-dirs-docs: - $(INSTALL_DIR) $(htmldir) - diff --git a/distrib/Makefile-bin-vars.in b/distrib/Makefile-bin-vars.in index f6b59ed..1b5b8fa 100644 --- a/distrib/Makefile-bin-vars.in +++ b/distrib/Makefile-bin-vars.in @@ -18,6 +18,8 @@ platform = @TargetPlatform@ prefix = @prefix@ exec_prefix = @exec_prefix@ +mandir = $(datarootdir)/man + headerdir = $(libdir)/include # default diff --git a/docs/Makefile b/docs/Makefile index 19d80b9..fc60173 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,7 +1,10 @@ TOP = .. include $(TOP)/mk/boilerplate.mk -SUBDIRS = man docbook-cheat-sheet ext-core storage-mgt users_guide +SUBDIRS = man docbook-cheat-sheet users_guide +ifneq "$(DOING_BIN_DIST)" "YES" +SUBDIRS += ext-core storage-mgt +endif PAGES = index.html @@ -9,4 +12,15 @@ install-docs :: $(PAGES) $(INSTALL_DIR) $(DESTDIR)$(htmldir) $(INSTALL_DATA) $(INSTALL_OPTS) $(PAGES) $(DESTDIR)$(htmldir) +.PHONY: binary-dist binary-dist.doc.% + +binary-dist: $(foreach SUBDIR,$(SUBDIRS),binary-dist.doc.$(SUBDIR)) + $(MKDIRHIER) $(BIN_DIST_DIR)/docs + cp Makefile $(BIN_DIST_DIR)/docs/ + cp $(PAGES) $(BIN_DIST_DIR)/docs/ + +$(foreach SUBDIR,$(SUBDIRS),binary-dist.doc.$(SUBDIR)): \ +binary-dist.doc.%: + $(MAKE) -C $* binary-dist + include $(TOP)/mk/target.mk diff --git a/docs/man/Makefile b/docs/man/Makefile index ab20fde..047a348 100644 --- a/docs/man/Makefile +++ b/docs/man/Makefile @@ -12,6 +12,8 @@ MAN_SECTION = 1 CLEAN_FILES += $(MAN_PAGE).$(MAN_SECTION) flags.xsl flags.xml +ifneq "$(DOING_BIN_DIST)" "YES" + $(MAN_PAGE).$(MAN_SECTION): flags.xsl flags.xml $(XSLTPROC) $(XSLTPROC_OPTS) flags.xsl flags.xml > $@ @@ -29,9 +31,16 @@ flags.xml: ../users_guide/flags.xml ]>" >> $@ tail -n +2 $< >> $@ +endif + install-docs:: $(MAN_PAGE).$(MAN_SECTION) $(INSTALL_DIR) $(DESTDIR)$(mandir) $(INSTALL_DIR) $(DESTDIR)$(mandir)/man$(MAN_SECTION) $(INSTALL_MAN) $(INSTALL_OPTS) $(MAN_PAGE).$(MAN_SECTION) $(DESTDIR)$(mandir)/man$(MAN_SECTION) +binary-dist:: $(MAN_PAGE).$(MAN_SECTION) + $(MKDIRHIER) $(BIN_DIST_DIR)/docs/man + cp Makefile $(BIN_DIST_DIR)/docs/man/ + cp $(MAN_PAGE).$(MAN_SECTION) $(BIN_DIST_DIR)/docs/man/ + include $(TOP)/mk/target.mk diff --git a/mk/install.mk b/mk/install.mk index d594c8c..9f4a1e5 100644 --- a/mk/install.mk +++ b/mk/install.mk @@ -266,6 +266,10 @@ endif endif ifneq "$(strip $(INSTALL_XML_DOC))" "" +binary-dist:: + $(MKDIRHIER) $(BIN_DIST_DIR)/docs/$(XML_DOC) + cp Makefile $(BIN_DIST_DIR)/docs/$(XML_DOC) + ifneq "$(XMLDocWays)" "" # TODO: The following could be an entry for an Obfuscated Makefile Contest... install-docs:: $(foreach i,$(XMLDocWays),$(INSTALL_XML_DOC)$(patsubst %.html-no-chunks,%.html,$(patsubst %.html,%/index.html,.$(i)))) @@ -286,6 +290,19 @@ install-docs-html-no-chunks: install-docs-%: $(INSTALL_DIR) $(DESTDIR)$($*dir) $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_XML_DOC).$* $(DESTDIR)$($*dir) + +binary-dist:: $(foreach i,$(XMLDocWays),$(INSTALL_XML_DOC)$(patsubst %.html-no-chunks,%.html,$(patsubst %.html,%/index.html,.$(i)))) + +binary-dist:: $(foreach i,$(XMLDocWays),binary-dist-docs-$i) + +binary-dist-docs-html: + cp -r $(INSTALL_XML_DOC) $(BIN_DIST_DIR)/docs/$(XML_DOC)/ + +binary-dist-docs-html-no-chunks: + cp $(INSTALL_XML_DOC).html $(BIN_DIST_DIR)/docs/$(XML_DOC)/ + +binary-dist-docs-%: + cp $(INSTALL_XML_DOC).$* $(BIN_DIST_DIR)/docs/$(XML_DOC)/ endif endif