package ExtUtils::MM_Win32;
# clobber this one with extreme prejudice because of the gawd-awful bs
# it is, for thinking that mingw gcc is still this clunky.
sub dynamic_lib {
my($self, %attribs) = @_;
return '' unless $self->needs_linking(); #might be because of a subdir
return '' unless $self->has_link_code;
my($otherldflags) = $attribs{OTHERLDFLAGS};
my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
my($ldfrom) = '$(LDFROM)';
my $tabchar = "\t";
my(@m);
my $dllname = $self->{BASEEXT} . "." . $self->{DLEXT};
$dllname =~ /(....)(.{0,4})/;
my $baseaddr = unpack("n", $1 ^ $2);
$otherldflags .= sprintf("-Wl,--image-base,0x%x0000 ", $baseaddr);
push(@m,'
# This section creates the dynamically loadable $(INST_DYNAMIC)
# (ms windows DLL file) from $(OBJECT) and possibly $(MYEXTLIB).
OTHERLDFLAGS =' .($otherldflags ? " $otherldflags" : "") .'
INST_DYNAMIC_DEP =' .($inst_dynamic_dep ? " $inst_dynamic_dep" : "") .'
$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) \
$(INST_ARCHAUTODIR)$(DFSEP).exists \
$(PERL_ARCHIVE) $(INST_DYNAMIC_DEP)
');
push(@m, $tabchar,
q{$(CC) -o $@ $(LDDLFLAGS) }
. $ldfrom ." \\\n"
. q{ $(OTHERLDFLAGS) $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS)
}
);
# return our assembled Makefile text:
join('',@m);
} # END of sub
####
g++ -o ..\blib\arch\auto\XML\Parser\Expat\Expat.dll -mdll -s -LE:/perls/Strawberry_Perl_510_0/perl/lib/CORE -LE:/StPerl_Bundled_mingw/lib Expat.o -Wl,--image-base,0x31560000 C:\strawberry\perl\lib\CORE\libperl510.a E:\StPerl_Bundled_mingw\lib\libexpat.a E:\StPerl_Bundled_mingw\lib\libmsvcrt.a E:\StPerl_Bundled_mingw\lib\libmoldname.a E:\StPerl_Bundled_mingw\lib\libkernel32.a E:\StPerl_Bundled_mingw\lib\libuser32.a E:\StPerl_Bundled_mingw\lib\libgdi32.a E:\StPerl_Bundled_mingw\lib\libwinspool.a E:\StPerl_Bundled_mingw\lib\libcomdlg32.a E:\StPerl_Bundled_mingw\lib\libadvapi32.a E:\StPerl_Bundled_mingw\lib\libshell32.a E:\StPerl_Bundled_mingw\lib\libole32.a E:\StPerl_Bundled_mingw\lib\liboleaut32.a E:\StPerl_Bundled_mingw\lib\libnetapi32.a E:\StPerl_Bundled_mingw\lib\libuuid.a E:\StPerl_Bundled_mingw\lib\libws2_32.a E:\StPerl_Bundled_mingw\lib\libmpr.a E:\StPerl_Bundled_mingw\lib\libwinmm.a E:\StPerl_Bundled_mingw\lib\libversion.a E:\StPerl_Bundled_mingw\lib\libodbc32.a E:\StPerl_Bundled_mingw\lib\libodbccp32.a dll.exp
####
gcc -o blib\arch\auto\XML\Parser\Expat\Expat.dll -mdll -s -LE:/perls/Strawberry_Perl_510_0/perl/lib/CORE -LE:/StPerl_Bundled_mingw/lib -O2 -mconsole -Wl,-export-all-symbols,-output-def,XML_Parser_Expat.def,-out-implib,XML_Parser_Expat.dll.a Expat.o \
-Wl,--image-base,0x35130000 C:\strawberry\perl\lib\CORE/libperl510.a e:/stperl_bundled_mingw/lib/libexpat.a e:/StPerl_Bundled_mingw/lib/libgdi32.a e:/StPerl_Bundled_mingw/lib/libwinspool.a e:/StPerl_Bundled_mingw/lib/libcomdlg32.a e:/StPerl_Bundled_mingw/lib/libole32.a e:/StPerl_Bundled_mingw/lib/liboleaut32.a e:/StPerl_Bundled_mingw/lib/libnetapi32.a e:/StPerl_Bundled_mingw/lib/libuuid.a e:/StPerl_Bundled_mingw/lib/libws2_32.a e:/StPerl_Bundled_mingw/lib/libmpr.a e:/StPerl_Bundled_mingw/lib/libwinmm.a e:/StPerl_Bundled_mingw/lib/libversion.a e:/StPerl_Bundled_mingw/lib/libodbc32.a e:/StPerl_Bundled_mingw/lib/libodbccp32.a
Creating library file: XML_Parser_Expat.dll.a