Make boot handle getting the libraries
authorIan Lynagh <igloo@earth.li>
Mon, 30 Apr 2007 11:35:19 +0000 (11:35 +0000)
committerIan Lynagh <igloo@earth.li>
Mon, 30 Apr 2007 11:35:19 +0000 (11:35 +0000)
Makefile
README
boot
darcs-all

index e00a844..edc0433 100644 (file)
--- 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 25122a8..3a87322 100644 (file)
--- 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 11e1785..014efff 100644 (file)
--- 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
 
index 4e67683..59e29e1 100644 (file)
--- 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;
         }