X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=make_ext.pl;h=0e0bc9bac1c3c3191de75193a4484ddebe7b30a9;hb=a22f28a4268aa03ce2bafaf594271b8ff764a5f8;hp=1cb5c1b4ce3639e24ed67851fd5c609ffd848d40;hpb=281da5eaa82c552216e167aece73c3f8df066bd4;p=p5sagit%2Fp5-mst-13.2.git diff --git a/make_ext.pl b/make_ext.pl index 1cb5c1b..0e0bc9b 100644 --- a/make_ext.pl +++ b/make_ext.pl @@ -14,11 +14,13 @@ use Cwd; # 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 @@ -163,7 +165,7 @@ if ($is_Win32) { $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; } @@ -232,7 +234,16 @@ foreach my $spec (@extspec) { # 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') { @@ -260,6 +271,7 @@ sub build_extension { # 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: $!";