bin/cross-run.in: Pass `-k', `-n' and `-s' flags through to `make'.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 8 Sep 2019 17:18:20 +0000 (18:18 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 8 Sep 2019 17:18:20 +0000 (18:18 +0100)
src/cross-run.in

index 0124572..9dffa85 100644 (file)
@@ -50,15 +50,21 @@ for my $f (split ' ', $C{"FLAVOURS"}) {
 
 our @ARCH = ();
 our $JOBS = undef;
+our $KEEPGOING = 0;
+our $SILENT = 0;
+our $DRYRUN = 0;
 our $DIR = ".";
 our $MARKER = "{}";
 our @CMD = ();
 
-my $mo = new MdwOpt "hC:j:m:",
+my $mo = new MdwOpt "hC:j:km:ns",
   { "help" => { 'return' => "h" },
     "directory" => { 'return' => 'C', 'arg' => 'req' },
     "jobs" => { 'return' => "j", 'arg' => 'req' },
-    "marker" => { 'return' => "m", 'arg' => 'req' } },
+    "keep-going" => { 'return' => "k" },
+    "marker" => { 'return' => "m", 'arg' => 'req' },
+    "dry-run" => { 'return' => "n" },
+    "silent" => { 'return' => "s" } },
   \@ARGV,
   ['inorder'];
 my $bad = 0;
@@ -69,7 +75,10 @@ OPT: for (;;) {
   elsif ($opt eq "C") { $DIR = $arg; }
   elsif ($opt eq "j")
     { $arg =~ /^[+]?\d+$/ or barf "bad integer `$arg'"; $JOBS = $arg; }
+  elsif ($opt eq "k") { $KEEPGOING = 1; }
   elsif ($opt eq "m") { $MARKER = $arg; }
+  elsif ($opt eq "n") { $DRYRUN = $arg; }
+  elsif ($opt eq "s") { $SILENT = $arg; }
   elsif ($opt eq '') {
     if ($arg =~ /^=(.*)$/) {
       my $pat = $1;
@@ -111,6 +120,9 @@ if ($CMD[0] eq 'make') { $TARGET = "run-make"; shift @CMD; }
 our @MAKE = ("make");
 push @MAKE, "-f$CROSSDIR/Makefile";
 push @MAKE, "-j$JOBS" if defined $JOBS;
+push @MAKE, "-k" if $KEEPGOING;
+push @MAKE, "-n" if $DRYRUN;
+push @MAKE, "-s" if $SILENT;
 push @MAKE, $TARGET;
 push @MAKE, "ARCHS=" . join " ", @ARCH;
 push @MAKE, "ARGS=" . join " ", map { hack $_ } @CMD;