summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2007-04-30 11:35:19 +0000
committerIan Lynagh <igloo@earth.li>2007-04-30 11:35:19 +0000
commit63cddb36f1dd2e3e41274f494873a62921d3f787 (patch)
tree31810a9bee6e0f8b8fbf2144bb2052cc4fef9550
parent6c796d2375238942c0b903e028181ea92727abc4 (diff)
downloadhaskell-63cddb36f1dd2e3e41274f494873a62921d3f787.tar.gz
Make boot handle getting the libraries
-rw-r--r--Makefile2
-rw-r--r--README11
-rw-r--r--boot13
-rw-r--r--darcs-all7
4 files changed, 13 insertions, 20 deletions
diff --git a/Makefile b/Makefile
index e00a844508..edc04334c4 100644
--- a/Makefile
+++ b/Makefile
@@ -72,7 +72,7 @@ check-packages :
@for d in `cat libraries/core-packages`; do \
if test ! -d libraries/$$d; then \
echo "Looks like you're missing libraries/$$d,"; \
- echo "maybe you haven't done './darcs-all get'?"; \
+ echo "Did you run 'sh boot' at the top level?"; \
exit 1; \
fi \
done
diff --git a/README b/README
index 25122a8830..3a873222e0 100644
--- a/README
+++ b/README
@@ -49,13 +49,13 @@ There are two ways to get a source tree:
to get the other repositories:
$ cd ghc
- $ chmod +x darcs-all
- $ ./darcs-all get
+ $ chmod +x boot
+ $ ./boot
This grabs the "core" packages by default. To get the full set of
packages, instead say
- $ ./darcs-all --extra get
+ $ ./boot --extra
This also downloads the libraries that are normally bundled in the
"extralibs" package (see above).
@@ -76,15 +76,10 @@ XML toolchain if you want to build the compiler documentation.
Quick start: the following gives you a default build:
- $ sh boot
$ ./configure
$ make
$ make install
-The "sh boot" step is only necessary if this is a tree checked out
-from darcs. For source distributions downloaded from GHC's web site,
-this step has already been performed.
-
These steps give you the default build, which includes everything
optimised and built in various ways (eg. profiling libs are built).
It can take a long time. To customise the build, see the file
diff --git a/boot b/boot
index 11e1785adc..014efff4db 100644
--- a/boot
+++ b/boot
@@ -2,17 +2,10 @@
set -e
-for d in `cat libraries/core-packages`
-do
- if test ! -d libraries/$d
- then
- echo "Looks like you're missing libraries/$d,"
- echo "maybe you haven't done './darcs-all get'?"
- exit 1
- fi
-done
-
chmod +x rts/gmp/configure
+chmod +x darcs-all
+
+./darcs-all ${1+"$@"} get
autoreconf
diff --git a/darcs-all b/darcs-all
index 4e67683355..59e29e1c9d 100644
--- a/darcs-all
+++ b/darcs-all
@@ -32,6 +32,8 @@ my $ignore_failure = 0;
# --extra says we grab the extra libs with 'get'. It has no effect on
# the other commands.
my $extra = 0;
+# --complete gets passed onto darcs get
+my $complete = 0;
# --nofib/--testsuite tell get to also grab the respective repos.
# They have no effect on the other commands.
my $nofib = 0;
@@ -90,7 +92,7 @@ sub darcsgetpackage {
sub darcsget {
my $r_flags;
- if (! grep /(?:--complete|--partial)/, @_) {
+ if (! $complete && ! grep /(?:--complete|--partial)/, @_) {
warning("adding --partial, to override use --complete");
$r_flags = [@_, "--partial"];
}
@@ -129,6 +131,9 @@ sub main {
if ($arg eq "-q") {
$verbose = 0;
}
+ elsif ($arg eq "--complete") {
+ $complete = 1;
+ }
elsif ($arg eq "--extra") {
$extra = 1;
}