Export `Traversable()` and `Foldable()` from Prelude
[ghc.git] / libraries / gen_contents_index
1 #!/bin/sh
2
3 set -e
4
5 USAGE="Usage: $0 [--intree] [--verbose] [--help]"
6 INTREE=
7 VERBOSE=
8
9 HADDOCK_ARGS=
10
11 while [ "$#" -ne "0" ]
12 do
13     case "$1" in
14     --intree)
15         # We're in a GHC build tree
16         INTREE=yes
17         ;;
18     --verbose)
19         VERBOSE=yes
20         ;;
21     --help)
22         echo "$USAGE"
23         exit 0
24         ;;
25     esac
26
27     shift
28 done
29
30 if [ -n "$INTREE" ]
31 then
32     [ -d dist-haddock ] || mkdir dist-haddock
33     cd dist-haddock
34
35     HADDOCK=../../inplace/bin/haddock
36     HADDOCK_ARGS="-p ../prologue.txt"
37     for REPO in `grep '^libraries/[^ ]*  *- ' ../../packages | sed -e 's#libraries/##' -e 's/ .*//'`
38     do
39         if [ -f "../$REPO/ghc-packages" ]
40         then
41             LIBS="`cat ../$REPO/ghc-packages`"
42             LIBROOT="../$REPO"
43         else
44             LIBS="$REPO"
45             LIBROOT=".."
46         fi
47         for LIB in $LIBS
48         do
49             HADDOCK_FILE="$LIBROOT/$LIB/dist-install/doc/html/$LIB/$LIB.haddock"
50             if [ -f "$HADDOCK_FILE" ]
51             then
52                 LIBPATH=`echo "$HADDOCK_FILE" | sed 's#/dist-install.*##'`
53                 NAME=`echo "$HADDOCK_FILE" | sed 's#.*/##' | sed 's#\.haddock$##'`
54                 # It's easier to portably remove tabs with tr than to try to get
55                 # sed to do what we want
56                 VERSION=`grep -i '^version:' $LIBPATH/$NAME.cabal | sed 's/.*://' | tr -d ' \t'`
57                 HADDOCK_ARG="--read-interface=${NAME}-${VERSION},$HADDOCK_FILE"
58                 HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG"
59             fi
60         done
61     done
62 else
63     HADDOCK=../../../../../bin/haddock
64     # We don't want the GHC API to swamp the index
65     HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort`
66     HADDOCK_ARGS="-p prologue.txt"
67     for HADDOCK_FILE in $HADDOCK_FILES
68     do
69         NAME_VERSION=`echo "$HADDOCK_FILE" | sed 's#/.*##'`
70         HADDOCK_ARG="--read-interface=${NAME_VERSION},$HADDOCK_FILE"
71         HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG"
72     done
73 fi
74
75 # Now create the combined contents and index pages
76 if [ -n "$VERBOSE" ]
77 then
78     echo $HADDOCK_ARGS
79 fi
80 $HADDOCK --gen-index --gen-contents -o . \
81          -t "Haskell Hierarchical Libraries" \
82          $HADDOCK_ARGS
83
84 # Unhandled Windows help stuff?:
85
86 #libraries.HxS : libraries.txt
87 #        haddock ...
88 #               -k libraries
89 #               --html-help=mshelp2
90 #       ( cd $(HTML_DIR) && if Hxcomp -p libraries.HxC -o ../$@ ; then false ; else true ; fi ) || true
91 #
92 #libraries.chm : libraries.txt
93 #       haddock ...
94 #               -k libraries \
95 #               --html-help=mshelp \
96 #       ( cd $(HTML_DIR) && if hhc libraries.hhp ; then false ; else true ; fi && mv libraries.chm .. ) || true
97