aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2010-07-24 17:55:47 +0000
committerDr. Stephen Henson <steve@openssl.org>2010-07-24 17:55:47 +0000
commitf6c29ba3dca0a958b2e090a682357349e4832dd1 (patch)
tree5224df4dba73089603e77af5c85d71e7a4e51058
parent160f9b5bf6f661695d851e61be349e320d8f633d (diff)
downloadopenssl-f6c29ba3dca0a958b2e090a682357349e4832dd1.tar.gz
Fix WIN32 build system to correctly link ENGINE DLLs contained in a
directory: currently the GOST ENGINE is the only case.
-rw-r--r--CHANGES4
-rwxr-xr-xutil/mk1mf.pl17
2 files changed, 19 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 3ebb5b28c8..5ee3150c04 100644
--- a/CHANGES
+++ b/CHANGES
@@ -24,7 +24,9 @@
Changes between 1.0.0a and 1.0.0b [xx XXX xxxx]
- *)
+ *) Fix WIN32 build system to correctly link an ENGINE directory into
+ a DLL.
+ [Steve Henson]
Changes between 1.0.0 and 1.0.0a [01 Jun 2010]
diff --git a/util/mk1mf.pl b/util/mk1mf.pl
index 280e9de1ad..89842e5251 100755
--- a/util/mk1mf.pl
+++ b/util/mk1mf.pl
@@ -13,6 +13,7 @@ $banner="\t\@echo Building OpenSSL";
my $no_static_engine = 1;
my $engines = "";
+my $otherlibs = "";
local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic
local $zlib_lib = "";
local $perl_asm = 0; # 1 to autobuild asm files from perl scripts
@@ -356,6 +357,12 @@ for (;;)
$lib=$val;
$lib =~ s/^.*\/([^\/]+)$/$1/;
}
+ if ($key eq "LIBNAME" && $no_static_engine)
+ {
+ $lib=$val;
+ $lib =~ s/^.*\/([^\/]+)$/$1/;
+ $otherlibs .= " $lib";
+ }
if ($key eq "EXHEADER")
{ $exheader.=&var_add($dir,$val, 1); }
@@ -658,7 +665,7 @@ foreach (split(/\s+/,$test))
$rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
}
-$defs.=&do_defs("E_SHLIB",$engines,"\$(ENG_D)",$shlibp);
+$defs.=&do_defs("E_SHLIB",$engines . $otherlibs,"\$(ENG_D)",$shlibp);
foreach (split(/\s+/,$engines))
{
@@ -671,6 +678,14 @@ foreach (split(/\s+/,$engines))
$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
+foreach (split(/\s+/,$otherlibs))
+ {
+ my $uc = $_;
+ $uc =~ tr /a-z/A-Z/;
+ $rules.= &do_lib_rule("\$(${uc}OBJ)","\$(ENG_D)$o$_$shlibp", "", $shlib, "");
+
+ }
+
$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
print $defs;