update submodules for GHC.HetMet.GArrow -> Control.GArrow renaming
[ghc-hetmet.git] / libraries / gen_contents_index
index 7f7dc70..04209fd 100644 (file)
@@ -3,58 +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=`echo "$DIR" | sed 's#/$##'`
-        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
-            HADDOCK_ARGS="$HADDOCK_ARGS --read-interface=$NAME,$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?: