blob: 562ee345204539bcbd96066846cf3742077ccc72 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
package ExtUtils::MM_AIX;
use strict;
use warnings;
our $VERSION = '7.62';
$VERSION =~ tr/_//d;
use ExtUtils::MakeMaker::Config;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
=head1 NAME
ExtUtils::MM_AIX - AIX specific subclass of ExtUtils::MM_Unix
=head1 SYNOPSIS
Don't use this module directly.
Use ExtUtils::MM and let it choose.
=head1 DESCRIPTION
This is a subclass of L<ExtUtils::MM_Unix> which contains functionality for
AIX.
Unless otherwise stated it works just like ExtUtils::MM_Unix.
=head2 Overridden methods
=head3 dlsyms
Define DL_FUNCS and DL_VARS and write the *.exp files.
=cut
sub dlsyms {
my($self,%attribs) = @_;
return '' unless $self->needs_linking;
join "\n", $self->xs_dlsyms_iterator(\%attribs);
}
=head3 xs_dlsyms_ext
On AIX, is C<.exp>.
=cut
sub xs_dlsyms_ext {
'.exp';
}
sub xs_dlsyms_arg {
my($self, $file) = @_;
my $arg = qq{-bE:${file}};
$arg = '-Wl,'.$arg if $Config{lddlflags} =~ /-Wl,-bE:/;
return $arg;
}
sub init_others {
my $self = shift;
$self->SUPER::init_others;
# perl "hints" add -bE:$(BASEEXT).exp to LDDLFLAGS. strip that out
# so right value can be added by xs_make_dynamic_lib to work for XSMULTI
$self->{LDDLFLAGS} ||= $Config{lddlflags};
$self->{LDDLFLAGS} =~ s#(\s*)\S*\Q$(BASEEXT)\E\S*(\s*)#$1$2#;
return;
}
=head1 AUTHOR
Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix
=head1 SEE ALSO
L<ExtUtils::MakeMaker>
=cut
1;
|