Integrate macperl changes #16974 and #16975;
[p5sagit/p5-mst-13.2.git] / lib / ExtUtils / MM_MacOS.pm
index 326ca6d..71eb969 100644 (file)
@@ -12,7 +12,7 @@ require ExtUtils::MM_Unix;
 @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
 
 use vars qw($VERSION);
-$VERSION = '1.01';
+$VERSION = '1.03';
 
 use Config;
 use Cwd 'cwd';
@@ -21,6 +21,8 @@ use File::Basename;
 use File::Spec;
 use vars qw(%make_data);
 
+my $Mac_FS = eval { require Mac::FileSpec::Unixish };
+
 use ExtUtils::MakeMaker qw($Verbose &neatvalue);
 
 =head1 NAME
@@ -240,22 +242,19 @@ Translate relative path names into Mac names.
 =cut
 
 sub macify {
-    # mmm, better ... and this condition should always be satisified,
-    # as the module is now distributed with MacPerl, but leave in anyway
-    if (do 'Mac/FileSpec/Unixish.pm') {
-        return Mac::FileSpec::Unixish::nativize($_[0]);
-    }
-
     my($unix) = @_;
     my(@mac);
 
-    $unix =~ s|^\./||;
-
     foreach (split(/[ \t\n]+/, $unix)) {
        if (m|/|) {
-           $_ = ":$_";
-           s|/|:|g;
-       } 
+           if ($Mac_FS) { # should always be true
+               $_ = Mac::FileSpec::Unixish::nativize($_);
+           } else {
+               s|^\./||;
+               s|/|:|g;
+               $_ = ":$_";
+           }
+       }
        push(@mac, $_);
     }
     
@@ -606,7 +605,11 @@ sub constants {
              XSPROTOARG MACLIBS_68K MACLIBS_PPC MACLIBS_SC MACLIBS_MRC MACLIBS_ALL_68K MACLIBS_ALL_PPC MACLIBS_SHARED SOURCE TYPEMAPS
              / ) {
        next unless defined $self->{$tmp};
-       push @m, "$tmp = $self->{$tmp}\n";
+       if ($tmp eq 'TYPEMAPS' && ref $self->{$tmp}) {
+           push @m, sprintf "$tmp = %s\n", join " ", @{$self->{$tmp}};
+       } else {
+           push @m, "$tmp = $self->{$tmp}\n";
+       }
     }
 
     push @m, q{