src/cross-run.in: Delete pointless `Data::Dumper' import.
[mdw-cross] / src / cross-run.in
index 0124572..796857c 100644 (file)
@@ -1,7 +1,5 @@
 #! /usr/bin/perl
 
-use Data::Dumper;
-
 use File::FnMatch qw(fnmatch);
 use MdwOpt;
 
@@ -14,7 +12,7 @@ our $CROSSDIR = "@crossdir@";
 sub usage (*) {
   my ($fh) = @_;
   print $fh
-    "usage: $ME [-j N] =ARCHGLOB|:FLAVOUR ... [--] CMD [ARGS ...]\n";
+    "usage: $ME [-kns] [-j N] =ARCHGLOB|:FLAVOUR ... [--] CMD [ARGS ...]\n";
 }
 sub barf ($) {
   my ($msg) = @_;
@@ -50,15 +48,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 +73,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 +118,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;