Home | History | Annotate | Line # | Download | only in platform
      1  1.1  christos package platform::mingw;
      2  1.1  christos 
      3  1.1  christos use strict;
      4  1.1  christos use warnings;
      5  1.1  christos use Carp;
      6  1.1  christos 
      7  1.1  christos use vars qw(@ISA);
      8  1.1  christos 
      9  1.1  christos require platform::Unix;
     10  1.1  christos @ISA = qw(platform::Unix);
     11  1.1  christos 
     12  1.1  christos # Assume someone set @INC right before loading this module
     13  1.1  christos use configdata;
     14  1.1  christos 
     15  1.1  christos sub binext              { '.exe' }
     16  1.1  christos sub objext              { '.obj' }
     17  1.1  christos sub libext              { '.a' }
     18  1.1  christos sub dsoext              { '.dll' }
     19  1.1  christos sub defext              { '.def' }
     20  1.1  christos 
     21  1.1  christos # Other extra that aren't defined in platform::BASE
     22  1.1  christos sub resext              { '.res.obj' }
     23  1.1  christos sub shlibext            { '.dll' }
     24  1.1  christos sub shlibextimport      { $target{shared_import_extension} || '.dll.a' }
     25  1.1  christos sub shlibextsimple      { undef }
     26  1.1  christos sub makedepcmd          { $disabled{makedepend} ? undef : $config{makedepcmd} }
     27  1.1  christos 
     28  1.1  christos (my $sover_filename = $config{shlib_version}) =~ s|\.|_|g;
     29  1.1  christos sub shlib_version_as_filename {
     30  1.1  christos     return $sover_filename;
     31  1.1  christos }
     32  1.1  christos sub sharedname {
     33  1.1  christos     return platform::BASE::__concat(platform::BASE->sharedname($_[1]),
     34  1.1  christos                                     "-",
     35  1.1  christos                                     $_[0]->shlib_version_as_filename(),
     36  1.1  christos                                     ($config{target} eq "mingw64"
     37  1.1  christos                                          ? "-x64" : ""));
     38  1.1  christos }
     39  1.1  christos 
     40  1.1  christos # With Mingw and other DLL producers, there isn't any "simpler" shared
     41  1.1  christos # library name.  However, there is a static import library.
     42  1.1  christos sub sharedlib_simple {
     43  1.1  christos     return undef;
     44  1.1  christos }
     45  1.1  christos 
     46  1.1  christos sub sharedlib_import {
     47  1.1  christos     return platform::BASE::__concat(platform::BASE->sharedname($_[1]),
     48  1.1  christos                                     $_[0]->shlibextimport());
     49  1.1  christos }
     50  1.1  christos 
     51  1.1  christos 1;
     52