Configurations/10-main.conf: omit now redundant -D_WINDLL.

... and refine /MT vs. /MD flag handling.

Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Andy Polyakov 2016-04-06 17:33:03 +02:00
parent d237d69914
commit c32cbe9787

View File

@ -1238,13 +1238,10 @@ sub vms_info {
coutflag => "/Fo",
rc => "rc",
rcoutflag => "/fo",
lib_cflags => sub { join(" ",
($disabled{shared} ? "/Zl" : ()),
"/Zi /Fdlib") },
lib_cflags => add("/Zi /Fdlib"),
dso_cflags => "/Zi",
bin_cflags => "/Zi /Fdapp",
lflags => add("/debug"),
shared_cflag => "-D_WINDLL",
shared_ldflag => "/dll",
shared_target => "win-shared", # meaningless except it gives Configure a hint
thread_scheme => "winthreads",
@ -1255,14 +1252,29 @@ sub vms_info {
cflags => add(picker(default => "-DUNICODE -D_UNICODE",
debug =>
sub {
($disabled{shared} ? "/MT" : "/MD")
."d /Od -DDEBUG -D_DEBUG";
($disabled{shared} ? "" : "/MDd")
." /Od -DDEBUG -D_DEBUG";
},
release =>
sub {
($disabled{shared} ? "/MT" : "/MD")
($disabled{shared} ? "" : "/MD")
." /Ox /O2 /Ob2";
})),
lib_cflags => add(sub { $disabled{shared} ? "/MT /Zl" : () }),
# Following might/should appears controversial, i.e. defining
# /MDd without evaluating $disabled{shared}. It works in
# non-shared build because static library is compiled with /Zl
# and bares no reference to specific RTL. And it works in
# shared build because multiple /MDd options are not prohibited.
# But why /MDd in static build? Well, basically this is just a
# reference point, which allows to catch eventual errors that
# would prevent those who want to wrap OpenSSL into own .DLL.
# Why not /MD in release build then? Well, some are likely to
# prefer [non-debug] openssl.exe to be free from Micorosoft RTL
# redistributable.
bin_cflags => add(picker(debug => "/MDd",
release => sub { $disabled{shared} ? "/MT" : () },
)),
bin_lflags => add("/subsystem:console /opt:ref"),
ex_libs => sub {
my @ex_libs = ();