From 7f4b8d9bfbfb0556d51ba1fb25f18e424bd5bf9c Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sun, 8 Nov 2009 21:07:01 +0000 Subject: [PATCH] Put docs into versioned directory names; fixes trac #3532 You can now have multiple versions of a package installed, and gen_contents_index will do the right thing. --- ghc.mk | 2 ++ libraries/gen_contents_index | 31 +++++++++++++++++++------------ utils/ghc-cabal/ghc-cabal.hs | 4 ++-- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/ghc.mk b/ghc.mk index 23d4e5f..015e3b4 100644 --- a/ghc.mk +++ b/ghc.mk @@ -817,6 +817,8 @@ ifneq "$(INSTALL_LIBRARY_DOCS)" "" for i in $(INSTALL_LIBRARY_DOCS); do \ $(INSTALL_DOC) $(INSTALL_OPTS) $$i "$(DESTDIR)$(docdir)/html/libraries/"; \ done + $(INSTALL_DATA) $(INSTALL_OPTS) libraries/prologue.txt "$(DESTDIR)$(docdir)/html/libraries/" + $(INSTALL_SCRIPT) $(INSTALL_OPTS) libraries/gen_contents_index "$(DESTDIR)$(docdir)/html/libraries/" endif ifneq "$(INSTALL_HTML_DOC_DIRS)" "" for i in $(INSTALL_HTML_DOC_DIRS); do \ diff --git a/libraries/gen_contents_index b/libraries/gen_contents_index index 99efc8f..e189cac 100644 --- a/libraries/gen_contents_index +++ b/libraries/gen_contents_index @@ -3,28 +3,35 @@ set -e HADDOCK_ARGS= -NAMES= case $* in --inplace) HADDOCK=../inplace/bin/haddock - HADDOCK_FILES=`ls -1 */dist-install/doc/html/*/*.haddock | sort` - HADDOCK_FILES="$HADDOCK_FILES `ls -1 dph/*/dist-install/doc/html/*/*.haddock | sort`" + HADDOCK_FILES1=`ls -1 */dist-install/doc/html/*/*.haddock | sort` + HADDOCK_FILES2=`ls -1 dph/*/dist-install/doc/html/*/*.haddock | sort` + HADDOCK_FILES="$HADDOCK_FILES1 $HADDOCK_FILES2" + for HADDOCK_FILE in $HADDOCK_FILES + do + LIBPATH=`echo "$HADDOCK_FILE" | sed 's#/dist-install.*##'` + NAME=`echo "$HADDOCK_FILE" | sed 's#.*/##' | sed 's#\.haddock$##'` + VERSION=`grep -i '^version:' $LIBPATH/$NAME.cabal | sed 's/.*[ \t]//'` + HADDOCK_ARG="--read-interface=${NAME}-${VERSION},$HADDOCK_FILE" + HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG" + done ;; *) - HADDOCK=../../../../bin/haddock + HADDOCK=../../../../../bin/haddock # We don't want the GHC API to swamp the index - HADDOCK_FILES=`ls -1 */*.haddock | grep -v "ghc/" | sort` + HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort` + for HADDOCK_FILE in $HADDOCK_FILES + do + NAME_VERSION=`echo "$HADDOCK_FILE" | sed 's#/.*##'` + HADDOCK_ARG="--read-interface=${NAME_VERSION},$HADDOCK_FILE" + HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG" + done ;; esac -for HADDOCK_FILE in $HADDOCK_FILES -do - NAME=` echo "$HADDOCK_FILE" | sed 's#.*/##' | sed 's#\.haddock$##' ` - HADDOCK_ARGS="$HADDOCK_ARGS --read-interface=$NAME,$HADDOCK_FILE" - NAMES="$NAMES $NAME" -done - # Now create the combined contents and index pages $HADDOCK --gen-index --gen-contents -o . \ -t "Haskell Hierarchical Libraries" \ diff --git a/utils/ghc-cabal/ghc-cabal.hs b/utils/ghc-cabal/ghc-cabal.hs index ef4e989..b940a2d 100644 --- a/utils/ghc-cabal/ghc-cabal.hs +++ b/utils/ghc-cabal/ghc-cabal.hs @@ -198,8 +198,8 @@ doInstall ghc ghcpkg strip topdir directory distDir libsubdir = toPathTemplate "$pkgid", docdir = toPathTemplate $ if relocatableBuild - then "$topdir/$pkg" - else (myDocdir "$pkg"), + then "$topdir/$pkgid" + else (myDocdir "$pkgid"), htmldir = toPathTemplate "$docdir" } progs = withPrograms lbi -- 1.7.10.4