1package platform::AIX; 2 3use strict; 4use warnings; 5use Carp; 6 7use vars qw(@ISA); 8 9require platform::Unix; 10@ISA = qw(platform::Unix); 11 12# Assume someone set @INC right before loading this module 13use configdata; 14 15sub dsoext { '.so' } 16sub shlibextsimple { return '.so' if $target{shared_target} eq "aix-solib"; 17 '.a'} 18 19# In shared mode, the default static library names clashes with the final 20# "simple" full shared library name, so we add '_a' to the basename of the 21# static libraries in that case, unless in solib mode (using only .so 22# files for shared libraries, and not packaging them inside archives) 23sub staticname { 24 return platform::Unix->staticname($_[1]) if $target{shared_target} eq "aix-solib"; 25 26 # Non-installed libraries are *always* static, and their names remain 27 # the same, except for the mandatory extension 28 my $in_libname = platform::BASE->staticname($_[1]); 29 return $in_libname 30 if $unified_info{attributes}->{libraries}->{$_[1]}->{noinst}; 31 32 return platform::BASE->staticname($_[1]) . ($disabled{shared} ? '' : '_a'); 33} 34 35# In solib mode, we do not install the simple symlink (we install the import 36# library). In regular mode, we install the symlink. 37sub sharedlib_simple { 38 return undef if $target{shared_target} eq "aix-solib"; 39 return platform::Unix->sharedlib_simple($_[1], $_[0]->shlibextsimple()); 40} 41 42# In solib mode, we install the import library. In regular mode, we have 43# no import library. 44sub sharedlib_import { 45 return platform::Unix->sharedlib_simple($_[1]) if $target{shared_target} eq "aix-solib"; 46 return undef; 47} 48