# After which, all nonxs modules are in lib, which was always sufficient to
# allow miniperl to build everything else.
-my @toolchain = qw(ext/constant/lib ext/Cwd ext/ExtUtils-Command/lib
+my @toolchain = qw(ext/constant/lib ext/Cwd ext/Cwd/lib ext/ExtUtils-Command/lib
ext/ExtUtils-Install/lib ext/ExtUtils-MakeMaker/lib
ext/ExtUtils-Manifest/lib ext/Text-ParseWords/lib
ext/File-Path/lib ext/AutoLoader/lib);
+my @ext_dirs = qw(ext cpan);
+
# This script acts as a simple interface for building extensions.
# It's actually a cut and shut of the Unix version ext/utils/makeext and the
$ENV{PATH} = "$topdir;$topdir\\win32\\bin;$ENV{PATH}";
my $pl2bat = "$topdir\\win32\\bin\\pl2bat";
unless (-f "$pl2bat.bat") {
- my @args = ($perl, ("$pl2bat.pl") x 2);
+ my @args = ($perl, "-I$topdir\\lib", ("$pl2bat.pl") x 2);
print "@args\n";
system(@args) unless defined $::Cross::platform;
}
# New style ext/Data-Dumper/
my $copy = $spec;
$copy =~ tr!/!-!;
- $ext_pathname = "ext/$copy";
+ foreach my $dir (@ext_dirs) {
+ if (-d "$dir/$copy") {
+ $ext_pathname = "$dir/$copy";
+ last;
+ }
+ }
+ if (!defined $ext_pathname) {
+ warn "Can't find extension $spec in any of @ext_dirs";
+ next;
+ }
}
if ($Config{osname} eq 'catamount') {
# another process has half-written.
$ENV{PERL5LIB}
= join $Config{path_sep}, (map {"$up/$_"} @toolchain), $lib_dir;
+ $ENV{PERL_CORE} = 1;
unless (chdir "$ext_dir") {
warn "Cannot cd to $ext_dir: $!";