summaryrefslogtreecommitdiffstats
path: root/Configurations/platform/mingw.pm
blob: 7dacb32a31c8642f4686911647077558fb9fd9f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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;