| package platform::AIX; |
| |
| use strict; |
| use warnings; |
| use Carp; |
| |
| use vars qw(@ISA); |
| |
| require platform::Unix; |
| @ISA = qw(platform::Unix); |
| |
| # Assume someone set @INC right before loading this module |
| use configdata; |
| |
| sub dsoext { '.so' } |
| sub shlibextsimple { return '.so' if $target{shared_target} eq "aix-solib"; |
| '.a'} |
| |
| # In shared mode, the default static library names clashes with the final |
| # "simple" full shared library name, so we add '_a' to the basename of the |
| # static libraries in that case, unless in solib mode (using only .so |
| # files for shared libraries, and not packaging them inside archives) |
| sub staticname { |
| return platform::Unix->staticname($_[1]) if $target{shared_target} eq "aix-solib"; |
| |
| # Non-installed libraries are *always* static, and their names remain |
| # the same, except for the mandatory extension |
| my $in_libname = platform::BASE->staticname($_[1]); |
| return $in_libname |
| if $unified_info{attributes}->{libraries}->{$_[1]}->{noinst}; |
| |
| return platform::BASE->staticname($_[1]) . ($disabled{shared} ? '' : '_a'); |
| } |
| |
| # In solib mode, we do not install the simple symlink (we install the import |
| # library). In regular mode, we install the symlink. |
| sub sharedlib_simple { |
| return undef if $target{shared_target} eq "aix-solib"; |
| return platform::Unix->sharedlib_simple($_[1], $_[0]->shlibextsimple()); |
| } |
| |
| # In solib mode, we install the import library. In regular mode, we have |
| # no import library. |
| sub sharedlib_import { |
| return platform::Unix->sharedlib_simple($_[1]) if $target{shared_target} eq "aix-solib"; |
| return undef; |
| } |