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