package ExtUtils::CBuilder::Platform::os2;
use strict;
use ExtUtils::CBuilder::Platform::Unix;
use vars qw($VERSION @ISA);
$VERSION = '0.13';
@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
sub need_prelink { 1 }
sub prelink {
my $self = shift;
my @res = $self->SUPER::prelink(@_);
die "Unexpected number of DEF files" unless @res == 1;
die "Can't find DEF file in the output"
unless $res[0] =~ m,^(.*?)([^\\/]+)\.def$,si;
my $libname = "$2$self->{config}{lib_ext}";
$self->do_system('emximp', '-o', $libname, $res[0]) or die "emxexp: res=$?";
return (@res, $libname);
}
sub _do_link {
my $self = shift;
local $self->{config}{shrpenv} = '';
return $self->SUPER::_do_link(@_);
}
sub extra_link_args_after_prelink { my ($self, %args) = @_;
grep /\.def$/i, @{$args{prelink_res}};
}
sub link_executable {
my $self = shift;
local $self->{config}{ldflags} = $self->{config}{ldflags};
$self->{config}{ldflags} =~ s/(?<!\S)-Zexe(?!\S)//;
return $self->SUPER::link_executable(@_);
}
1;