X-Git-Url: https://git.distorted.org.uk/~mdw/mdw-cross/blobdiff_plain/6cb0a33a221e7d98629e10cb3d77c94772951410..901f45ed5efee7108bae76c7186160e956ecaa19:/src/cross-run.in diff --git a/src/cross-run.in b/src/cross-run.in index 0124572..796857c 100644 --- a/src/cross-run.in +++ b/src/cross-run.in @@ -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;