diff options
author | Andy Polyakov <appro@openssl.org> | 2016-04-06 17:33:03 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2016-04-07 21:13:02 +0200 |
commit | c32cbe97873bf919dc4d1bc332e4758ee6caea78 (patch) | |
tree | 7a6435f1d8f60a2627fb23d06f0a6b484d007c49 /Configurations/10-main.conf | |
parent | d237d6991461ae55b22df22b42d4771d8ea1b261 (diff) |
Configurations/10-main.conf: omit now redundant -D_WINDLL.
... and refine /MT vs. /MD flag handling.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'Configurations/10-main.conf')
-rw-r--r-- | Configurations/10-main.conf | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 1b32b10f3c..a36109c799 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -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 = (); |