123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package platform::Unix;
- use strict;
- use warnings;
- use Carp;
- use vars qw(@ISA);
- require platform::BASE;
- @ISA = qw(platform::BASE);
- # Assume someone set @INC right before loading this module
- use configdata;
- sub binext { $target{exe_extension} || '' }
- sub dsoext { $target{dso_extension} || platform->shlibextsimple()
- || '.so' }
- # Because these are also used in scripts and not just Makefile, we must
- # convert $(SHLIB_VERSION_NUMBER) to the actual number.
- sub shlibext { (my $x = $target{shared_extension}
- || '.so.$(SHLIB_VERSION_NUMBER)')
- =~ s|\.\$\(SHLIB_VERSION_NUMBER\)
- |.$config{shlib_version}|x;
- $x; }
- sub libext { $target{lib_extension} || '.a' }
- sub defext { $target{def_extension} || '.ld' }
- sub objext { $target{obj_extension} || '.o' }
- sub depext { $target{obj_extension} || '.d' }
- # Other extra that aren't defined in platform::BASE
- sub shlibextsimple { (my $x = $target{shared_extension} || '.so')
- =~ s|\.\$\(SHLIB_VERSION_NUMBER\)||;
- $x; }
- sub shlibvariant { $target{shlib_variant} || "" }
- sub makedepprog { $disabled{makedepend} ? undef : $config{makedepprog} }
- # No conversion of assembler extension on Unix
- sub asm {
- return $_[1];
- }
- # At some point, we might decide that static libraries are called something
- # other than the default...
- sub staticname {
- # 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}->{$_[1]}->{noinst};
- # We currently return the same name anyway... but we might choose to
- # append '_static' or '_a' some time in the future.
- return platform::BASE->staticname($_[1]);
- }
- sub sharedname {
- return platform::BASE::__concat(platform::BASE->sharedname($_[1]),
- ($_[0]->shlibvariant() // ''));
- }
- sub sharedname_simple {
- return platform::BASE::__isshared($_[1]) ? $_[1] : undef;
- }
- sub sharedlib_simple {
- return platform::BASE::__concat($_[0]->sharedname_simple($_[1]),
- $_[0]->shlibextsimple());
- }
- 1;
|