xref: /freebsd/crypto/openssl/Configurations/platform/mingw.pm (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1package platform::mingw;
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 binext              { '.exe' }
16sub objext              { '.obj' }
17sub libext              { '.a' }
18sub dsoext              { '.dll' }
19sub defext              { '.def' }
20
21# Other extra that aren't defined in platform::BASE
22sub resext              { '.res.obj' }
23sub shlibext            { '.dll' }
24sub shlibextimport      { $target{shared_import_extension} || '.dll.a' }
25sub shlibextsimple      { undef }
26sub makedepcmd          { $disabled{makedepend} ? undef : $config{makedepcmd} }
27
28(my $sover_filename = $config{shlib_version}) =~ s|\.|_|g;
29sub shlib_version_as_filename {
30    return $sover_filename;
31}
32sub sharedname {
33    return platform::BASE::__concat(platform::BASE->sharedname($_[1]),
34                                    "-",
35                                    $_[0]->shlib_version_as_filename(),
36                                    ($config{target} eq "mingw64"
37                                         ? "-x64" : ""));
38}
39
40# With Mingw and other DLL producers, there isn't any "simpler" shared
41# library name.  However, there is a static import library.
42sub sharedlib_simple {
43    return undef;
44}
45
46sub sharedlib_import {
47    return platform::BASE::__concat(platform::BASE->sharedname($_[1]),
48                                    $_[0]->shlibextimport());
49}
50
511;
52