mirror of
https://github.com/openssl/openssl.git
synced 2024-12-09 05:51:54 +08:00
e805c2d6d3
Added functionality to use static libraries as source for other libraries. When done this way, the target library will use the object files from the sourced static libraries, making the sourced libraries work as "containers" for object files. We also need to make sure that the Unix Makefile template knows how to deal with shared libraries and modules that depend on static libraries. That's new situation we haven't had before. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10088)
49 lines
1.4 KiB
Perl
49 lines
1.4 KiB
Perl
package platform::mingw;
|
|
|
|
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 binext { '.exe' }
|
|
sub objext { '.obj' }
|
|
sub libext { '.a' }
|
|
sub dsoext { '.dll' }
|
|
sub defext { '.def' }
|
|
|
|
# Other extra that aren't defined in platform::BASE
|
|
sub resext { '.res.obj' }
|
|
sub shlibext { '.dll' }
|
|
sub shlibextimport { $target{shared_import_extension} || '.dll.a' }
|
|
sub shlibextsimple { undef }
|
|
sub makedepprog { $disabled{makedepend} ? undef : $config{makedepprog} }
|
|
|
|
(my $sover_filename = $config{shlib_version}) =~ s|\.|_|g;
|
|
sub shlib_version_as_filename {
|
|
return $sover_filename;
|
|
}
|
|
sub sharedname {
|
|
return platform::BASE::__concat(platform::BASE->sharedname($_[1]),
|
|
"-",
|
|
$_[0]->shlib_version_as_filename(),
|
|
($config{target} eq "mingw64"
|
|
? "-x64" : ""));
|
|
}
|
|
|
|
# With Mingw and other DLL producers, there isn't really any "simpler"
|
|
# shared library name. However, there is a static import library, so
|
|
# we return that instead.
|
|
sub sharedlib_simple {
|
|
return platform::BASE::__concat(platform::BASE->sharedname($_[1]),
|
|
$_[0]->shlibextimport());
|
|
}
|
|
|
|
1;
|