base => 0,
verbose => 0,
check => 1,
- todo => "", # If no --todo, this is a blead perl, and the make should
- # work without error
+ todo => "", # If no --todo, this is a blead perl
shlib => 'blib/arch/auto/Devel/PPPort/PPPort.so',
);
my(@new, @already_in_sym, %seen);
my $r = run(qw(make));
- $r->{didnotrun} and die "couldn't run make: $!\n";
+ $r->{didnotrun} and die "couldn't run make: $!\n" .
+ join('', @{$r->{stdout}})."\n---\n".join('', @{$r->{stderr}});
# If there were warnings, we ask the user before continuing when creating
# the base files of blead. This leads to a potential early exit when things
unless (@u) {
$r = run(qw(make test));
- $r->{didnotrun} and die "couldn't run make test: $!\n";
+ $r->{didnotrun} and die "couldn't run make test: $!\n" .
+ join('', @{$r->{stdout}})."\n---\n".join('', @{$r->{stderr}});
$r->{status} == 0 and last;
for my $l (@{$r->{stderr}}) {
my $r = run(qw(make test));
- $r->{didnotrun} and die "couldn't run make test: $!\n";
+ $r->{didnotrun} and die "couldn't run make test: $!\n" .
+ join('', @{$r->{stdout}})."\n---\n".join('', @{$r->{stderr}});
if ($r->{status} == 0) {
display_sym('del', $sym, $cur);
# just to be sure
run(qw(make realclean));
- run($fullperl, "Makefile.PL", @mf_arg)->{status} == 0
- or die "cannot run Makefile.PL: $!\n";
+ my $r = run($fullperl, "Makefile.PL", @mf_arg);
+ unless ($r->{status} == 0) {
+ die "cannot run Makefile.PL: $!\n" .
+ join('', @{$r->{stdout}})."\n---\n".join('', @{$r->{stderr}});
+ }
}
sub regen_apicheck
my $r = run($Config{nm}, @{$opt{options}}, $opt{file});
if ($r->{didnotrun} or $r->{status}) {
- die "cannot run $Config{nm}";
+ die "cannot run $Config{nm}" .
+ join('', @{$r->{stdout}})."\n---\n".join('', @{$r->{stderr}});
}
my %sym;
my $r;
while (1) {
+
+ # Create apicheck.i
$r = run(qw(make apicheck.i));
+ # Quit the loop if it succeeded
last unless $r->{didnotrun} or $r->{status};
+ # Get the list of macros that it failed on
my %sym = map { /error: macro "(\w+)" (?:requires|passed) \d+ argument/ ? ($1 => 'A') : () }
@{$r->{stderr}};
write_todo($opt{todo}, $opt{version}, \%todo);
regen_apicheck();
}
- else {
+ else { # It failed for some other reason: give up
die "cannot run make apicheck.i ($r->{didnotrun} / $r->{status}):\n".
join('', @{$r->{stdout}})."\n---\n".join('', @{$r->{stderr}});
}