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;
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;
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;