This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
cflags does not exists in Config.pm; use ccflags
[perl5.git] / dist / ExtUtils-CBuilder / lib / ExtUtils / CBuilder / Platform / Unix.pm
CommitLineData
6b09c160
YST
1package ExtUtils::CBuilder::Platform::Unix;
2
3use strict;
4use ExtUtils::CBuilder::Base;
5
6use vars qw($VERSION @ISA);
d247f55d 7$VERSION = '0.280205';
6b09c160
YST
8@ISA = qw(ExtUtils::CBuilder::Base);
9
345dbb93
RGS
10sub link_executable {
11 my $self = shift;
673223b5
DM
12
13 # On some platforms (which ones??) $Config{cc} seems to be a better
14 # bet for linking executables than $Config{ld}. Cygwin is a notable
15 # exception.
345dbb93
RGS
16 local $self->{config}{ld} =
17 $self->{config}{cc} . " " . $self->{config}{ldflags};
18 return $self->SUPER::link_executable(@_);
19}
20
6b09c160
YST
21sub link {
22 my $self = shift;
23 my $cf = $self->{config};
24
25 # Some platforms (notably Mac OS X 10.3, but some others too) expect
26 # the syntax "FOO=BAR /bin/command arg arg" to work in %Config
27 # (notably $Config{ld}). It usually works in system(SCALAR), but we
28 # use system(LIST). We fix it up here with 'env'.
29
30 local $cf->{ld} = $cf->{ld};
31 if (ref $cf->{ld}) {
32 unshift @{$cf->{ld}}, 'env' if $cf->{ld}[0] =~ /^\s*\w+=/;
33 } else {
34 $cf->{ld} =~ s/^(\s*\w+=)/env $1/;
35 }
36
37 return $self->SUPER::link(@_);
38}
39
401;