Make it possible to link VC static lib with either /MT or /MD application
authorAndy Polyakov <appro@openssl.org>
Sat, 13 Oct 2007 12:38:37 +0000 (12:38 +0000)
committerAndy Polyakov <appro@openssl.org>
Sat, 13 Oct 2007 12:38:37 +0000 (12:38 +0000)
[from HEAD].
PR: 1230

e_os.h
util/pl/VC-32.pl

diff --git a/e_os.h b/e_os.h
index 5068d1bd74feaa3acef2e73736937be7a97b8f7e..ab3c539eab869ede1bb2b075f948d38d27dada76 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -277,6 +277,14 @@ static unsigned int _strlen31(const char *str)
        }
 #    endif
 #    include <malloc.h>
+#    if defined(_MSC_VER) && _MSC_VER<=1200 && defined(_MT) && defined(isspace)
+       /* compensate for bug is VC6 ctype.h */
+#      undef isspace
+#      undef isdigit
+#      undef isalnum
+#      undef isupper
+#      undef isxdigit
+#    endif
 #  endif
 #  include <io.h>
 #  include <fcntl.h>
index c359c3a652702bb830a5eeaa6995cff64af52994..3b80adfbad2ea1c773bb914524894d8d86386ba4 100644 (file)
@@ -31,8 +31,10 @@ if ($FLAVOR =~ /WIN64/)
     $base_cflags=' /W3 /Gs0 /GF /Gy /nologo -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DOPENSSL_SYSNAME_WIN32 -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE';
     $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE';       # shut up VC8
     $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE';      # shut up VC8
-    $opt_cflags=' /MD /Ox';
-    $dbg_cflags=' /MDd /Od -DDEBUG -D_DEBUG';
+    my $f = $shlib?' /MD':' /MT';
+    $lib_cflag='/Zl' if (!$shlib);     # remove /DEFAULTLIBs from static lib
+    $opt_cflags=$f.' /Ox';
+    $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
     $lflags="/nologo /subsystem:console /opt:ref";
     }
 elsif ($FLAVOR =~ /CE/)
@@ -94,8 +96,10 @@ else # Win32
     $base_cflags=' /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
     $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE';       # shut up VC8
     $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE';      # shut up VC8
-    $opt_cflags=' /MD /Ox /O2 /Ob2';
-    $dbg_cflags=' /MDd /Od -DDEBUG -D_DEBUG';
+    my $f = $shlib?' /MD':' /MT';
+    $lib_cflag='/Zl' if (!$shlib);     # remove /DEFAULTLIBs from static lib
+    $opt_cflags=$f.' /Ox /O2 /Ob2';
+    $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
     $lflags="/nologo /subsystem:console /opt:ref";
     }
 $mlflags='';
@@ -203,7 +207,6 @@ if (!$no_asm)
 if ($shlib && $FLAVOR !~ /CE/)
        {
        $mlflags.=" $lflags /dll";
-#      $cflags =~ s| /MD| /MT|;
        $lib_cflag=" -D_WINDLL";
        $out_def="out32dll";
        $tmp_def="tmp32dll";