summaryrefslogtreecommitdiff
path: root/boot-pkgs
blob: 5bc6f6be619bc17fec73a8fc24ee261e2c0390e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#! /bin/sh
set -e

libraries=

tarred="time"

for p in $tarred
do
    libraries="$libraries libraries/$p"
    if [ -d "libraries/$p/_darcs" ]
    then
        echo Ignoring libraries/$p as it looks like a darcs checkout
    else
        tarball=libraries/tarballs/$p-*.tar.gz
        stamp="libraries/stamp/$p"
        if [ ! -d "libraries/$p" ] ||
           [ ! -f "$stamp" ] ||
           [ "libraries/stamp/$p" -ot $tarball ]
        then
            rm -rf "libraries/$p"
            mkdir "libraries/$p"
            (
                cd "libraries/$p"
                tar -zxf ../../$tarball
                mv */* .
            )
            touch "$stamp"
        fi
    fi
done

for f in libraries/*; do
  pkgs=$f/ghc-packages
  if test -f $pkgs; then
    for p in `cat $pkgs`; do
      libraries="$libraries $f/$p"
    done
  else
    libraries="$libraries $f"
  fi
done

for f in $libraries; do
   dir=`basename $f`
   cabals=`echo $f/*.cabal`
   if test -f $cabals; then
       echo "Creating $f/ghc.mk"
       rm -f $f/ghc.mk
       pkg=`echo "$cabals" | sed -e 's#.*/##' -e 's#\.cabal$##'`
       if test -f $f/ghc-stage; then
           stage=`cat $f/ghc-stage`
       else
           stage=1
       fi
       top=`echo $f | sed 's#[^/]\+#..#g'`
       echo "${f}_PACKAGE = ${pkg}" >> $f/ghc.mk
       echo "${f}_dist-install_GROUP = libraries" >> $f/ghc.mk
       echo "\$(eval \$(call build-package,${f},dist-install,${stage}))" >> $f/ghc.mk
       rm -f $f/GNUmakefile
       echo "Creating $f/GNUmakefile"
       echo "dir = ${f}" >> $f/GNUmakefile
       echo "TOP = ${top}" >> $f/GNUmakefile
       echo "include \$(TOP)/mk/sub-makefile.mk" >> $f/GNUmakefile
   fi
done