next;
}
push @extspec, $_;
- if($_ eq 'DynaLoader' and $target !~ /clean$/) {
- # No, we don't know why nmake can't work out the dependency chain
- push @{$extra_passthrough{$_}}, 'DynaLoader.c';
- } elsif(FindExt::is_static($_)) {
+ if($_ ne 'DynaLoader' && FindExt::is_static($_)) {
push @{$extra_passthrough{$_}}, 'LINKTYPE=static';
}
}
my $leafname = "$leaf.pm";
my $pathname = join '/', @dirs, $leafname;
my @locations = ($leafname, $pathname, "lib/$pathname");
- unshift @locations, 'lib/IO/Compress/Base.pm' if $mname eq 'IO::Compress';
foreach (@locations) {
if (-f $_) {
$fromname = $_;
($value = $fromname) =~ s/\.pm\z/.pod/;
$value = $fromname unless -e $value;
}
+
+ if ($mname eq 'Pod::Checker') {
+ # the abstract in the .pm file is unparseable by MM,
+ # so special-case it. We can't use the package's own
+ # Makefile.PL, as it doesn't handle the executable scripts
+ # right.
+ $key = 'ABSTRACT';
+ # this is copied from the CPAN Makefile.PL v 1.171
+ $value = 'Pod::Checker verifies POD documentation contents for compliance with the POD format specifications';
+ }
+
open my $fh, '>', 'Makefile.PL'
or die "Can't open Makefile.PL for writing: $!";
printf $fh <<'EOM', $0, $mname, $fromname, $key, $value;
);
}
- if (!$target or $target !~ /clean$/) {
- # Give makefile an opportunity to rewrite itself.
- # reassure users that life goes on...
- my @args = ('config', @$pass_through);
- system(@make, @args) and print "@make @args failed, continuing anyway...\n";
- }
my @targ = ($target, @$pass_through);
print "Making $target in $ext_dir\n@make @targ\n" if $verbose;
local $ENV{PERL_INSTALL_QUIET} = 1;
my $code = system(@make, @targ);
+ if($code >> 8 != 0){ # probably cleaned itself, try again once more time
+ $code = system(@make, @targ);
+ }
die "Unsuccessful make($ext_dir): code=$code" if $code != 0;
chdir $return_dir || die "Cannot cd to $return_dir: $!";