X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=libraries%2Fgen_contents_index;h=04209fdb8fc70502717b1c9cf6d45b27c08ecad9;hp=393a8790fcd7e6dca1b2cf3a8cf0beafa862db05;hb=e5c3b478b3cd1707cf122833822f44b2ac09b8e9;hpb=4d0d0e543940806dced227d628eca3bb0c1e4e27 diff --git a/libraries/gen_contents_index b/libraries/gen_contents_index index 393a879..04209fd 100644 --- a/libraries/gen_contents_index +++ b/libraries/gen_contents_index @@ -3,59 +3,43 @@ set -e HADDOCK_ARGS= -NAMES= case $* in --inplace) - GHC_PKG=../utils/ghc-pkg/ghc-pkg-inplace - for DIR in */ + HADDOCK=../inplace/bin/haddock + for LIB in `grep '^libraries/[^ ]* *- ' ../packages | sed -e 's#libraries/##' -e 's/ .*//'` do - NAME=${DIR%/} - HADDOCK_FILE=$NAME/dist/doc/html/$NAME/$NAME.haddock - if [ -f $HADDOCK_FILE ] + HADDOCK_FILE="$LIB/dist-install/doc/html/$LIB/$LIB.haddock" + if [ -f "$HADDOCK_FILE" ] then - FULLNAME=$NAME-`$GHC_PKG field $NAME version | sed 's#^version: *##'` - HADDOCK_ARGS="$HADDOCK_ARGS --read-interface=$FULLNAME,$HADDOCK_FILE" - NAMES="$NAMES $NAME" + LIBPATH=`echo "$HADDOCK_FILE" | sed 's#/dist-install.*##'` + NAME=`echo "$HADDOCK_FILE" | sed 's#.*/##' | sed 's#\.haddock$##'` + # It's easier to portably remove tabs with tr than to try to get + # sed to do what we want + VERSION=`grep -i '^version:' $LIBPATH/$NAME.cabal | sed 's/.*://' | tr -d ' \t'` + HADDOCK_ARG="--read-interface=${NAME}-${VERSION},$HADDOCK_FILE" + HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG" fi done ;; *) - HADDOCK_FILES=`ls -1 */*.haddock | sort` + HADDOCK=../../../../../bin/haddock + # We don't want the GHC API to swamp the index + HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort` for HADDOCK_FILE in $HADDOCK_FILES do - NAME=`echo "$HADDOCK_FILE" | sed "s#/.*##"` - HADDOCK_ARGS="$HADDOCK_ARGS --read-interface=$NAME,$HADDOCK_FILE" - NAMES="$NAMES $NAME" + NAME_VERSION=`echo "$HADDOCK_FILE" | sed 's#/.*##'` + HADDOCK_ARG="--read-interface=${NAME_VERSION},$HADDOCK_FILE" + HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG" done ;; esac -# Automagically create the prologue for the combined index via a -# header, the package prologues (in alphabetical order of the -# packages) and a footer. -{ - cat libraries-header.txt - echo - # Hack to find out if we're in a build tree or installed docs - for NAME in $NAMES - do - if [ "$NAME" != haskell98 ] - then - echo "[@${NAME}@]" - grep -v '^ *$$' "$NAME"/prologue.txt - echo - fi - done - cat libraries-footer.txt - echo -} > libraries.txt - # Now create the combined contents and index pages -haddock --gen-index --gen-contents -o . \ - -t "Haskell Hierarchical Libraries" \ - -p libraries.txt \ - $HADDOCK_ARGS +$HADDOCK --gen-index --gen-contents -o . \ + -t "Haskell Hierarchical Libraries" \ + -p "prologue.txt" \ + $HADDOCK_ARGS # Unhandled Windows help stuff?: