From: Ian Lynagh Date: Thu, 30 Aug 2007 22:37:40 +0000 (+0000) Subject: Fix where all the documentation gets installed X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=88aa9117c3bd185e96a0bdc2e935afe180c6decc Fix where all the documentation gets installed The paths can also now be overridden with the standard configure flags --docdir=, --htmldir= etc. We were always advertising these, but now we actually obey them. --- diff --git a/docs/Makefile b/docs/Makefile index ca9d52d..62bdebd 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -6,7 +6,7 @@ SUBDIRS = man docbook-cheat-sheet ext-core storage-mgt users_guide PAGES = index.html install-docs :: $(PAGES) - $(INSTALL_DIR) $(datadir)/html - $(INSTALL_DATA) $(INSTALL_OPTS) $(PAGES) $(datadir)/html + $(INSTALL_DIR) $(htmldir) + $(INSTALL_DATA) $(INSTALL_OPTS) $(PAGES) $(htmldir) include $(TOP)/mk/target.mk diff --git a/docs/index.html b/docs/index.html index cadd6f5..d1eb67a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,7 +20,7 @@ + diff --git a/libraries/Makefile b/libraries/Makefile index 3928a6b..1e76ede 100644 --- a/libraries/Makefile +++ b/libraries/Makefile @@ -186,24 +186,22 @@ configure: $(foreach SUBDIR,$(SUBDIRS), \ # We should depend on %/%.cabal here (and in other rules), but make # makes that difficult. -# We explicitly set datadir to "$prefix/share" as, while that is the -# default on Linux, on Windows it defaults to -# "C:\\Program Files\\Common Files" +# We explicitly set datadir to a sensible value, as Cabal (used to?) use +# "C:\\Program Files\\Common Files" +# on Windows # We also set libsubdir differently on Windows and non-Windows, as on -# non-Windows the path we deduce is highre up than the path passed to +# non-Windows the path we deduce is higher up than the path passed to # the executable with the shell script on non-Windows. This should # probably be tidied up so that we can always pass the same libsubdir. ifeq "$(Windows)" "YES" -DATA_REL_DIR = . -datadir = $$prefix -libsubdir = $$pkgid +datadir = $$prefix +libsubdir = $$pkgid else -DATA_REL_DIR = share/ghc -datadir = $$prefix/share/ghc -libsubdir = $$compiler/lib/$$pkgid +datadir = $$prefix/share/ghc +libsubdir = $$compiler/lib/$$pkgid endif -DOC_ROOT = $(prefix)/$(DATA_REL_DIR)/doc/html/ +libraryhtmldir = $(htmldir)/libraries # We rely on all the CONFIGURE_ARGS being quoted with '...', and there # being no 's inside the values. @@ -219,8 +217,9 @@ stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).%: %/setup/Setup $(CONFIGURE_OPTS) \ --prefix='$$topdir' \ --datadir='$(datadir)' \ - --datasubdir='.' \ + --datasubdir='$$pkgid' \ --libsubdir='$(libsubdir)' \ + --docdir='$(libraryhtmldir)' \ --with-compiler=../../compiler/stage1/ghc-inplace$ \ --with-hc-pkg=../../utils/ghc-pkg/ghc-pkg-inplace$ \ --with-hsc2hs=../../utils/hsc2hs/hsc2hs-inplace \ @@ -266,8 +265,6 @@ $(foreach SUBDIR,$(SUBDIRS),$(SUBDIR)/GNUmakefile):\ .PHONY: doc -DOC_SUBDIRS = $(filter-out haskell98,$(SUBDIRS)) - doc: $(foreach SUBDIR,$(SUBDIRS),doc.library.$(SUBDIR)) sh gen_contents_index @@ -303,13 +300,13 @@ endif install: $(foreach SUBDIR,$(SUBDIRS),install.library.$(SUBDIR)) ifeq "$(HADDOCK_DOCS)" "YES" - $(INSTALL_DIR) $(DOC_ROOT) - $(INSTALL_DATA) index.html doc-index.html $(DOC_ROOT) - $(INSTALL_SCRIPT) gen_contents_index $(DOC_ROOT) + $(INSTALL_DIR) $(libraryhtmldir)/html + $(INSTALL_DATA) index.html doc-index.html $(libraryhtmldir)/html + $(INSTALL_SCRIPT) gen_contents_index $(libraryhtmldir)/html # Hacks: - $(INSTALL_DATA) $(DOC_ROOT)/base/*.css $(DOC_ROOT) - $(INSTALL_DATA) $(DOC_ROOT)/base/*.js $(DOC_ROOT) - $(INSTALL_DATA) $(DOC_ROOT)/base/*.gif $(DOC_ROOT) + $(INSTALL_DATA) $(libraryhtmldir)/html/base/*.css $(libraryhtmldir)/html + $(INSTALL_DATA) $(libraryhtmldir)/html/base/*.js $(libraryhtmldir)/html + $(INSTALL_DATA) $(libraryhtmldir)/html/base/*.gif $(libraryhtmldir)/html endif # Cabal doesn't let us ask to install docs only, so do nothing here diff --git a/mk/config.mk.in b/mk/config.mk.in index 5b89981..16109bf 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -504,6 +504,9 @@ FPTOOLS_TOP_ABS = @hardtop@ # The platform specific version of 'hardtop'. FPTOOLS_TOP_ABS_PLATFORM = @hardtop_plat@ +# This gets used in the default docdir +PACKAGE_TARNAME = @PACKAGE_TARNAME@ + BIN_DIST_NAME=ghc-$(ProjectVersion) BIN_DIST_TOPDIR=$(FPTOOLS_TOP_ABS) BIN_DIST_DIR=$(BIN_DIST_TOPDIR)/$(BIN_DIST_NAME) @@ -547,6 +550,11 @@ datadir = $(datadir0)/ghc-$(ProjectVersion) endif # Windows headerdir = $(libdir)/include +docdir = @docdir@ +htmldir = @htmldir@ +dvidir = @dvidir@ +pdfdir = @pdfdir@ +psdir = @psdir@ # Default place for putting interface files is $(libdir) # (overriden for packages in package.mk) diff --git a/mk/install.mk b/mk/install.mk index de8866f..a55b89d 100644 --- a/mk/install.mk +++ b/mk/install.mk @@ -278,27 +278,27 @@ install-docs:: $(INSTALL_DOCS) endif endif -# TODO: The following could be an entry for an Obfuscated Makefile Contest... ifneq "$(strip $(INSTALL_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)))) - $(INSTALL_DIR) $(DESTDIR)$(datadir) - for i in $(XMLDocWays); do \ - if [ $$i = "html" ]; then \ - $(INSTALL_DIR) $(DESTDIR)$(datadir)/html; \ - $(INSTALL_DIR) $(DESTDIR)$(datadir)/html/$(INSTALL_XML_DOC); \ - echo "( cd $(INSTALL_XML_DOC) && $(CP) * $(DESTDIR)$(datadir)/html/$(INSTALL_XML_DOC) )" ; \ - ( cd $(INSTALL_XML_DOC) && $(CP) * $(DESTDIR)$(datadir)/html/$(INSTALL_XML_DOC) ) ; \ - else \ - $(INSTALL_DIR) $(DESTDIR)$(datadir)/doc; \ - echo $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_XML_DOC)`echo .$$i | sed s/\.html-no-chunks/.html/` $(DESTDIR)$(datadir)/doc; \ - $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_XML_DOC)`echo .$$i | sed s/\.html-no-chunks/.html/` $(DESTDIR)$(datadir)/doc; \ - fi; \ - if [ $$i = "html-no-chunks" ]; then \ - echo $(CP) $(FPTOOLS_CSS_ABS) $(DESTDIR)$(datadir)/doc; \ - $(CP) $(FPTOOLS_CSS_ABS) $(DESTDIR)$(datadir)/doc; \ - fi \ - done + +install-docs:: $(foreach i,$(XMLDocWays),install-docs-$i) + +install-docs-html: + $(INSTALL_DIR) $(DESTDIR)$(htmldir) + $(INSTALL_DIR) $(DESTDIR)$(htmldir)/$(INSTALL_XML_DOC) + $(INSTALL_DIR) $(DESTDIR)$(htmldir)/$(INSTALL_XML_DOC)/html + $(CP) $(INSTALL_XML_DOC)/* $(DESTDIR)$(htmldir)/$(INSTALL_XML_DOC)/html + +install-docs-html-no-chunks: + $(INSTALL_DIR) $(DESTDIR)$(htmldir) + $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_XML_DOC).html $(DESTDIR)$(htmldir) + $(CP) $(FPTOOLS_CSS_ABS) $(DESTDIR)$(htmldir) + +install-docs-%: + $(INSTALL_DIR) $(DESTDIR)$($*dir) + $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_XML_DOC)$* $(DESTDIR)$($*dir) endif endif diff --git a/mk/package.mk b/mk/package.mk index afe44b5..8bd96c8 100644 --- a/mk/package.mk +++ b/mk/package.mk @@ -303,7 +303,7 @@ CLEAN_FILES += $(PACKAGE).haddock %.raw-hs : %.hs $(HC) $(HC_OPTS) -D__HADDOCK__ -E $< -o $@ -HTML_INSTALL_DIR = $(datadir)/html/libraries/$(PACKAGE) +HTML_INSTALL_DIR = $(htmldir)/libraries/html/$(PACKAGE) install-docs :: $(HTML_DOC) @$(INSTALL_DIR) $(HTML_INSTALL_DIR)