X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=libraries%2Fgen_contents_index;h=2ae6bf5772211934e3255a07c3e3bab346e29434;hb=d9a2eefd17cd91e7193616d955056fddf3dab305;hp=393a8790fcd7e6dca1b2cf3a8cf0beafa862db05;hpb=4d0d0e543940806dced227d628eca3bb0c1e4e27;p=ghc-hetmet.git diff --git a/libraries/gen_contents_index b/libraries/gen_contents_index index 393a879..2ae6bf5 100644 --- a/libraries/gen_contents_index +++ b/libraries/gen_contents_index @@ -3,59 +3,42 @@ set -e HADDOCK_ARGS= -NAMES= case $* in --inplace) - GHC_PKG=../utils/ghc-pkg/ghc-pkg-inplace - for DIR in */ + HADDOCK=../inplace/bin/haddock + 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 - NAME=${DIR%/} - HADDOCK_FILE=$NAME/dist/doc/html/$NAME/$NAME.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" - fi + 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 and 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" 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?: