blob: 0cdee985f69dfc7a3a4a41dd6b207691456d24a2 (
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
67
68
|
#! /bin/sh
set -e
# Check that we have all boot packages.
for dir in `grep "^[^# ][^ ]* *[^ ][^ ]* *[^ ][^ ]*$" packages | sed "s/ .*//"`
do
if test ! -f $dir/LICENSE
then
echo "Error: $dir/LICENSE doesn't exist." >&2
echo "Maybe you haven't done './darcs-all get'?" >&2
exit 1
fi
done
# autoreconf everything that needs it.
for dir in . libraries/*
do
if test -f $dir/configure.ac
then
echo "Booting $dir"
( cd $dir && autoreconf )
fi
done
# Alas, darcs doesn't handle file permissions, so fix a few of them.
for f in boot darcs-all push-all validate
do
if test -f $f
then
chmod +x $f
fi
done
libraries=
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 "\$(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
|