fix the links in the library documentation index
[ghc-hetmet.git] / libraries / gen_contents_index
1 #!/bin/sh
2
3 set -e
4
5 HADDOCK_ARGS=
6 NAMES=
7
8 case $* in
9 --inplace)
10     GHC_PKG=../utils/ghc-pkg/ghc-pkg-inplace
11     for DIR in */
12     do
13         NAME=${DIR%/}
14         HADDOCK_FILE=$NAME/dist/doc/html/$NAME/$NAME.haddock
15         if [ -f $HADDOCK_FILE ]
16         then
17             FULLNAME=$NAME-`$GHC_PKG field $NAME version | sed 's#^version: *##'` 
18             HADDOCK_ARGS="$HADDOCK_ARGS --read-interface=$FULLNAME,$HADDOCK_FILE"
19             NAMES="$NAMES $NAME"
20         fi
21     done
22     ;;
23 *)
24     HADDOCK_FILES=`ls -1 */*.haddock | sort`
25     for HADDOCK_FILE in $HADDOCK_FILES
26     do
27         NAME=`echo "$HADDOCK_FILE" | sed "s#/.*##"`
28         HADDOCK_ARGS="$HADDOCK_ARGS --read-interface=$NAME,$HADDOCK_FILE"
29         NAMES="$NAMES $NAME"
30     done
31     ;;
32 esac
33
34 # Automagically create the prologue for the combined index via a
35 # header, the package prologues (in alphabetical order of the
36 # packages) and a footer.
37 {
38     cat libraries-header.txt
39     echo
40     # Hack to find out if we're in a build tree or installed docs
41     for NAME in $NAMES
42     do
43         if [ "$NAME" != haskell98 ]
44         then
45             echo "[@${NAME}@]"
46             grep -v '^ *$$' "$NAME"/prologue.txt
47             echo
48         fi
49     done
50     cat libraries-footer.txt
51     echo
52 } > libraries.txt
53
54 # Now create the combined contents and index pages
55 haddock --gen-index --gen-contents -o . \
56         -t "Haskell Hierarchical Libraries" \
57         -p libraries.txt \
58         $HADDOCK_ARGS
59
60 # Unhandled Windows help stuff?:
61
62 #libraries.HxS : libraries.txt
63 #        haddock ...
64 #               -k libraries
65 #               --html-help=mshelp2
66 #       ( cd $(HTML_DIR) && if Hxcomp -p libraries.HxC -o ../$@ ; then false ; else true ; fi ) || true
67 #
68 #libraries.chm : libraries.txt
69 #       haddock ...
70 #               -k libraries \
71 #               --html-help=mshelp \
72 #       ( cd $(HTML_DIR) && if hhc libraries.hhp ; then false ; else true ; fi && mv libraries.chm .. ) || true
73