Support building nonxs extensions from cpan/ on Unix.
Nicholas Clark [Fri, 25 Sep 2009 10:56:04 +0000 (11:56 +0100)]
Makefile.SH
make_ext.pl

index 9dad2e5..2b28787 100644 (file)
@@ -218,7 +218,11 @@ done
 nonxs_list=' '
 for f in $nonxs_ext; do
     p=`echo "$f" | tr / -`
-    nonxs_list="$nonxs_list ext/$p/pm_to_blib"
+    for d in ext cpan; do
+       if test -d $d/$p; then
+           nonxs_list="$nonxs_list $d/$p/pm_to_blib"
+       fi
+    done
 done
 
 dtrace_h=''
index 17f1227..bcddb90 100644 (file)
@@ -20,6 +20,7 @@ my @toolchain = qw(ext/constant/lib ext/Cwd ext/Cwd/lib ext/ExtUtils-Command/lib
        ext/File-Path/lib ext/AutoLoader/lib);
 
 my @ext_dirs = qw(ext cpan);
+my $ext_dirs_re = '(?:' . join('|', @ext_dirs) . ')';
 
 # This script acts as a simple interface for building extensions.
 
@@ -100,7 +101,7 @@ foreach (@extspec) {
     if (s{^lib/auto/}{}) {
        # Remove lib/auto prefix and /*.* suffix
        s{/[^/]+\.[^/]+$}{};
-    } elsif (s{^ext/}{}) {
+    } elsif (s{^$ext_dirs_re/}{}) {
        # Remove ext/ prefix and /pm_to_blib suffix
        s{/pm_to_blib$}{};
        # Targets are given as files on disk, but the extension spec is still