Commit | Line | Data |
---|---|---|
7292dc67 RGS |
1 | package ExtUtils::MM_AIX; |
2 | ||
3 | use strict; | |
88e24181 | 4 | our $VERSION = '7.02'; |
7292dc67 RGS |
5 | |
6 | require ExtUtils::MM_Unix; | |
a592ba15 | 7 | our @ISA = qw(ExtUtils::MM_Unix); |
7292dc67 | 8 | |
76ca89ed RGS |
9 | use ExtUtils::MakeMaker qw(neatvalue); |
10 | ||
7292dc67 RGS |
11 | |
12 | =head1 NAME | |
13 | ||
14 | ExtUtils::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 | ||
23 | This is a subclass of ExtUtils::MM_Unix which contains functionality for | |
24 | AIX. | |
25 | ||
26 | Unless otherwise stated it works just like ExtUtils::MM_Unix | |
27 | ||
28 | =head2 Overridden methods | |
29 | ||
30 | =head3 dlsyms | |
31 | ||
32 | Define DL_FUNCS and DL_VARS and write the *.exp files. | |
33 | ||
34 | =cut | |
35 | ||
36 | sub dlsyms { | |
37 | my($self,%attribs) = @_; | |
38 | ||
39 | return '' unless $self->needs_linking(); | |
40 | ||
41 | my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {}; | |
42 | my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || []; | |
43 | my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || []; | |
44 | my(@m); | |
45 | ||
46 | push(@m," | |
47 | dynamic :: $self->{BASEEXT}.exp | |
48 | ||
49 | ") unless $self->{SKIPHASH}{'dynamic'}; # dynamic and static are subs, so... | |
50 | ||
51 | push(@m," | |
52 | static :: $self->{BASEEXT}.exp | |
53 | ||
54 | ") unless $self->{SKIPHASH}{'static'}; # we avoid a warning if we tick them | |
55 | ||
56 | push(@m," | |
57 | $self->{BASEEXT}.exp: Makefile.PL | |
58 | ",' $(PERLRUN) -e \'use ExtUtils::Mksymlists; \\ | |
59 | Mksymlists("NAME" => "',$self->{NAME},'", "DL_FUNCS" => ', | |
60 | neatvalue($funcs), ', "FUNCLIST" => ', neatvalue($funclist), | |
61 | ', "DL_VARS" => ', neatvalue($vars), ');\' | |
62 | '); | |
63 | ||
64 | join('',@m); | |
65 | } | |
66 | ||
67 | ||
68 | =head1 AUTHOR | |
69 | ||
70 | Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix | |
71 | ||
72 | =head1 SEE ALSO | |
73 | ||
74 | L<ExtUtils::MakeMaker> | |
75 | ||
76 | =cut | |
77 | ||
78 | ||
79 | 1; |