MM_AIX needs neatvalue
[p5sagit/p5-mst-13.2.git] / lib / ExtUtils / Embed.pm
index 0847182..2d6470e 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Embed.pm,v 1.2501 $
+# $Id: Embed.pm,v 1.1.1.1 2002/01/16 19:27:19 schwern Exp $
 require 5.002;
 
 package ExtUtils::Embed;
@@ -18,7 +18,7 @@ use vars qw(@ISA @EXPORT $VERSION
            );
 use strict;
 
-$VERSION = sprintf("%d.%02d", q$Revision: 1.2506_00 $ =~ /(\d+)\.(\d+)/);
+$VERSION = 1.26;
 
 @ISA = qw(Exporter);
 @EXPORT = qw(&xsinit &ldopts 
@@ -139,6 +139,29 @@ sub static_ext {
     @Extensions;
 }
 
+sub _escape {
+    my $arg = shift;
+    $$arg =~ s/([\(\)])/\\$1/g;
+}
+
+sub _ldflags {
+    my $ldflags = $Config{ldflags};
+    _escape(\$ldflags);
+    return $ldflags;
+}
+
+sub _ccflags {
+    my $ccflags = $Config{ccflags};
+    _escape(\$ccflags);
+    return $ccflags;
+}
+
+sub _ccdlflags {
+    my $ccdlflags = $Config{ccdlflags};
+    _escape(\$ccdlflags);
+    return $ccdlflags;
+}
+
 sub ldopts {
     require ExtUtils::MakeMaker;
     require ExtUtils::Liblist;
@@ -177,13 +200,13 @@ sub ldopts {
     foreach $mod (@mods) {
        @ns = split(/::|\/|\\/, $mod);
        $sub = $ns[-1];
-       $root = $MM->catdir(@ns);
+       $root = File::Spec->catdir(@ns);
        
        print STDERR "searching for '$sub${lib_ext}'\n" if $Verbose;
        foreach (@path) {
-           next unless -e ($archive = $MM->catdir($_,"auto",$root,"$sub$lib_ext"));
+           next unless -e ($archive = File::Spec->catdir($_,"auto",$root,"$sub$lib_ext"));
            push @archives, $archive;
-           if(-e ($extra = $MM->catdir($_,"auto",$root,"extralibs.ld"))) {
+           if(-e ($extra = File::Spec->catdir($_,"auto",$root,"extralibs.ld"))) {
                local(*FH); 
                if(open(FH, $extra)) {
                    my($libs) = <FH>; chomp $libs;
@@ -203,7 +226,10 @@ sub ldopts {
        $libperl = $Config{libperl};
     }
     else {
-       $libperl = (grep(/^-l\w*perl\w*$/, @link_args))[0] || "-lperl";
+       $libperl = (grep(/^-l\w*perl\w*$/, @link_args))[0]
+           || ($Config{libperl} =~ /^lib(\w+)(\Q$lib_ext\E|\.\Q$Config{dlext}\E)$/
+               ? "-l$1" : '')
+           || "-lperl";
     }
 
     my $lpath = File::Spec->catdir($Config{archlibexp}, 'CORE');
@@ -213,7 +239,9 @@ sub ldopts {
 
     my $ld_or_bs = $bsloadlibs || $ldloadlibs;
     print STDERR "bs: $bsloadlibs ** ld: $ldloadlibs" if $Verbose;
-    my $linkage = "$Config{ccdlflags} $Config{ldflags} @archives $ld_or_bs";
+    my $ccdlflags = _ccdlflags();
+    my $ldflags   = _ldflags();
+    my $linkage = "$ccdlflags $ldflags @archives $ld_or_bs";
     print STDERR "ldopts: '$linkage'\n" if $Verbose;
 
     return $linkage if scalar @_;
@@ -221,11 +249,13 @@ sub ldopts {
 }
 
 sub ccflags {
-    my_return(" $Config{ccflags} ");
+    my $ccflags = _ccflags();
+    my_return(" $ccflags ");
 }
 
 sub ccdlflags {
-    my_return(" $Config{ccdlflags} ");
+    my $ccdlflags = _ccdlflags();
+    my_return(" $ccdlflags ");
 }
 
 sub perl_inc {