Fix building MAD with C++ - a MAD_PV of "" is illegal, as it will be free()d.
[p5sagit/p5-mst-13.2.git] / make_ext.pl
index 373f739..0e0bc9b 100644 (file)
@@ -19,6 +19,8 @@ my @toolchain = qw(ext/constant/lib ext/Cwd ext/Cwd/lib ext/ExtUtils-Command/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') {