about summary refs log tree commit diff
path: root/src/libmain
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-06-25T15·36+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-06-25T15·36+0000
commitb113edeab780216b0590045b932be685d1399e9b (patch)
tree32c0e6e0006c211b43f91aad8529cff6c424306d /src/libmain
parente4883211f9482ec3255bd4e682635493e03466ca (diff)
* A flag `--keep-going / -k' to keep building goals if one fails, as
  much as possible.  (This is similar to GNU Make's `-k' flag.)

* Refactoring to implement this: previously we just bombed out when
  a build failed, but now we have to clean up.  In particular this
  means that goals must be freed quickly --- they shouldn't hang
  around until the worker exits.  So the worker now maintains weak
  pointers in order not to prevent garbage collection.

* Documented the `-k' and `-j' flags.
  

Diffstat (limited to 'src/libmain')
-rw-r--r--src/libmain/shared.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 8f3c0121cf..13ad4fedea 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -137,6 +137,8 @@ static void initAndRun(int argc, char * * argv)
         }
         else if (arg == "--keep-failed" || arg == "-K")
             keepFailed = true;
+        else if (arg == "--keep-going" || arg == "-k")
+            keepGoing = true;
         else if (arg == "--max-jobs" || arg == "-j") {
             ++i;
             if (i == args.end()) throw UsageError("`--max-jobs' requires an argument");