Always build library object files with shared library cflags
authorRichard Levitte <levitte@openssl.org>
Fri, 19 Feb 2016 21:02:41 +0000 (22:02 +0100)
committerRichard Levitte <levitte@openssl.org>
Sat, 20 Feb 2016 15:51:31 +0000 (16:51 +0100)
This takes us away from the idea that we know exactly how our static
libraries are going to get used.  Instead, we make them available to
build shareable things with, be it other shared libraries or DSOs.

On the other hand, we also have greater control of when the shared
library cflags.  They will never be used with object files meant got
binaries, such as apps/openssl or test/test*.

With unified, we take this a bit further and prepare for having to
deal with extra cflags specifically to be used with DSOs (dynamic
engines), libraries and binaries (applications).

Reviewed-by: Rich Salz <rsalz@openssl.org>
65 files changed:
Configurations/README
Configurations/README.design
Configurations/common.tmpl
Configurations/unix-Makefile.tmpl
Configure
Makefile.in
crypto/Makefile.in
crypto/aes/Makefile.in
crypto/asn1/Makefile.in
crypto/async/Makefile.in
crypto/bf/Makefile.in
crypto/bio/Makefile.in
crypto/bn/Makefile.in
crypto/buffer/Makefile.in
crypto/camellia/Makefile.in
crypto/cast/Makefile.in
crypto/chacha/Makefile.in
crypto/cmac/Makefile.in
crypto/cms/Makefile.in
crypto/comp/Makefile.in
crypto/conf/Makefile.in
crypto/ct/Makefile.in
crypto/des/Makefile.in
crypto/dh/Makefile.in
crypto/dsa/Makefile.in
crypto/dso/Makefile.in
crypto/ec/Makefile.in
crypto/engine/Makefile.in
crypto/err/Makefile.in
crypto/evp/Makefile.in
crypto/hmac/Makefile.in
crypto/idea/Makefile.in
crypto/kdf/Makefile.in
crypto/lhash/Makefile.in
crypto/md2/Makefile.in
crypto/md4/Makefile.in
crypto/md5/Makefile.in
crypto/mdc2/Makefile.in
crypto/modes/Makefile.in
crypto/objects/Makefile.in
crypto/ocsp/Makefile.in
crypto/pem/Makefile.in
crypto/pkcs12/Makefile.in
crypto/pkcs7/Makefile.in
crypto/poly1305/Makefile.in
crypto/rand/Makefile.in
crypto/rc2/Makefile.in
crypto/rc4/Makefile.in
crypto/rc5/Makefile.in
crypto/ripemd/Makefile.in
crypto/rsa/Makefile.in
crypto/seed/Makefile.in
crypto/sha/Makefile.in
crypto/srp/Makefile.in
crypto/stack/Makefile.in
crypto/ts/Makefile.in
crypto/txt_db/Makefile.in
crypto/ui/Makefile.in
crypto/whrlpool/Makefile.in
crypto/x509/Makefile.in
crypto/x509v3/Makefile.in
engines/Makefile.in
ssl/Makefile.in
util/mk1mf.pl
util/pl/VC-32.pl

index 58c4d96..454c8f3 100644 (file)
@@ -488,7 +488,8 @@ They are all expected to return a string with the lines they produce.
                         src2obj(obj => "PATH/TO/objectfile",
                                 srcs => [ "PATH/TO/sourcefile", ... ],
                                 deps => [ "dep1", ... ],
                         src2obj(obj => "PATH/TO/objectfile",
                                 srcs => [ "PATH/TO/sourcefile", ... ],
                                 deps => [ "dep1", ... ],
-                                incs => [ "INCL/PATH", ... ]);
+                                incs => [ "INCL/PATH", ... ]
+                                intent => one of "lib", "dso", "bin" );
 
                   'obj' has the intended object file *without*
                   extension, src2obj() is expected to add that.
 
                   'obj' has the intended object file *without*
                   extension, src2obj() is expected to add that.
@@ -496,7 +497,9 @@ They are all expected to return a string with the lines they produce.
                   object file, with the first item being the source
                   file that directly corresponds to the object file.
                   'deps' is a list of explicit dependencies.  'incs'
                   object file, with the first item being the source
                   file that directly corresponds to the object file.
                   'deps' is a list of explicit dependencies.  'incs'
-                  is a list of include file directories.
+                  is a list of include file directories.  Finally,
+                  'intent' indicates what this object file is going
+                  to be used for.
 
     obj2lib     - function that produces build file lines to build a
                   static library file ("libfoo.a" in Unix terms) from
 
     obj2lib     - function that produces build file lines to build a
                   static library file ("libfoo.a" in Unix terms) from
index 80839fa..362b967 100644 (file)
@@ -392,15 +392,18 @@ etc.
                         src2obj(obj => "PATH/TO/objectfile",
                                 srcs => [ "PATH/TO/sourcefile", ... ],
                                 deps => [ "dep1", ... ],
                         src2obj(obj => "PATH/TO/objectfile",
                                 srcs => [ "PATH/TO/sourcefile", ... ],
                                 deps => [ "dep1", ... ],
-                                incs => [ "INCL/PATH", ... ]);
+                                incs => [ "INCL/PATH", ... ]
+                                intent => one of "lib", "dso", "bin" );
 
                   'obj' has the intended object file *without*
                   extension, src2obj() is expected to add that.
                   'srcs' has the list of source files to build the
                   object file, with the first item being the source
                   file that directly corresponds to the object file.
 
                   'obj' has the intended object file *without*
                   extension, src2obj() is expected to add that.
                   'srcs' has the list of source files to build the
                   object file, with the first item being the source
                   file that directly corresponds to the object file.
-                  'deps' is a list of dependencies.  'incs' is a list
-                  of include file directories.
+                  'deps' is a list of explicit dependencies.  'incs'
+                  is a list of include file directories.  Finally,
+                  'intent' indicates what this object file is going
+                  to be used for.
 
     obj2lib     - function that produces build file lines to build a
                   static library file ("libfoo.a" in Unix terms) from
 
     obj2lib     - function that produces build file lines to build a
                   static library file ("libfoo.a" in Unix terms) from
index f0860dd..196441c 100644 (file)
      my $obj = shift;
      (my $obj_no_o = $obj) =~ s|\.o$||;
      my $bin = shift;
      my $obj = shift;
      (my $obj_no_o = $obj) =~ s|\.o$||;
      my $bin = shift;
+     my %opts = @_;
      if (@{$unified_info{sources}->{$obj}}) {
          $OUT .= src2obj(obj => $obj_no_o,
                          srcs => $unified_info{sources}->{$obj},
                          deps => [ reducedepends(resolvedepends($obj)) ],
                          incs => [ @{$unified_info{includes}->{$bin}},
      if (@{$unified_info{sources}->{$obj}}) {
          $OUT .= src2obj(obj => $obj_no_o,
                          srcs => $unified_info{sources}->{$obj},
                          deps => [ reducedepends(resolvedepends($obj)) ],
                          incs => [ @{$unified_info{includes}->{$bin}},
-                                   @{$unified_info{includes}->{$obj}} ]);
+                                   @{$unified_info{includes}->{$obj}} ],
+                         %opts);
      }
  }
 
      }
  }
 
@@ -78,7 +80,7 @@
                      objs => [ map { (my $x = $_) =~ s|\.o$||; $x }
                                @{$unified_info{sources}->{$lib}} ],
                      deps => [ resolvedepends($lib) ]);
                      objs => [ map { (my $x = $_) =~ s|\.o$||; $x }
                                @{$unified_info{sources}->{$lib}} ],
                      deps => [ resolvedepends($lib) ]);
-     map { doobj($_, $lib, intent => "lib") } @{$unified_info{sources}->{$lib}};
+     map { doobj($_, $lib, intent => "dso") } @{$unified_info{sources}->{$lib}};
  }
 
  # dobin is responsible for building programs.  It will call obj2bin,
  }
 
  # dobin is responsible for building programs.  It will call obj2bin,
index 9dc6d7d..61ee7a6 100644 (file)
@@ -43,7 +43,6 @@
      # given libname with the simple shared extension (possible SO version
      # removed).  This differs from shlib_simple() by being unconditional.
      sub dso {
      # given libname with the simple shared extension (possible SO version
      # removed).  This differs from shlib_simple() by being unconditional.
      sub dso {
-         return () if $config{no_shared};
          my $engine = shift;
 
          return $engine . '$(DSO_EXT)';
          my $engine = shift;
 
          return $engine . '$(DSO_EXT)';
@@ -149,6 +148,7 @@ CFLAGS_Q={- $cflags2 =~ s|([\\"])|\\$1|g; $cflags2 -} {- $config{cflags} -}
 LDFLAGS= {- $config{lflags} -}
 PLIB_LDFLAGS= {- $config{plib_lflags} -}
 EX_LIBS= {- $config{ex_libs} -}
 LDFLAGS= {- $config{lflags} -}
 PLIB_LDFLAGS= {- $config{plib_lflags} -}
 EX_LIBS= {- $config{ex_libs} -}
+SHARED_CFLAGS={- $target{shared_cflag} || "" -}
 SHARED_LDFLAGS={- $target{shared_ldflag}
                   # Unlike other OSes (like Solaris, Linux, Tru64,
                   # IRIX) BSD run-time linkers (tested OpenBSD, NetBSD
 SHARED_LDFLAGS={- $target{shared_ldflag}
                   # Unlike other OSes (like Solaris, Linux, Tru64,
                   # IRIX) BSD run-time linkers (tested OpenBSD, NetBSD
@@ -164,6 +164,8 @@ SHARED_LDFLAGS={- $target{shared_ldflag}
                   . ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$|
                      ? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -}
 SHARED_RCFLAGS={- $target{shared_rcflag} -}
                   . ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$|
                      ? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -}
 SHARED_RCFLAGS={- $target{shared_rcflag} -}
+DSO_CFLAGS={- $target{shared_cflag} || "" -}
+BIN_CFLAGS={- "" -}
 
 PERL={- $config{perl} -}
 
 
 PERL={- $config{perl} -}
 
@@ -823,25 +825,28 @@ configdata.pm: {- $config{build_file_template} -} $(SRCDIR)/Configure $(SRCDIR)/
       my $obj = $args{obj};
       my $srcs = join(" ", @{$args{srcs}});
       my $deps = join(" ", @{$args{srcs}}, @{$args{deps}});
       my $obj = $args{obj};
       my $srcs = join(" ", @{$args{srcs}});
       my $deps = join(" ", @{$args{srcs}}, @{$args{deps}});
-      my $incs = join(" ", map { " -I".$_ } @{$args{incs}});
+      my $incs = join("", map { " -I".$_ } @{$args{incs}});
+      my $ecflags = { lib => '$(SHARED_CFLAGS)',
+                      dso => '$(DSO_CFLAGS)',
+                      bin => '$(BIN_CFLAGS)' } -> {$args{intent}};
       my $makedepprog = $config{makedepprog};
       if ($makedepprog eq "makedepend") {
           return <<"EOF";
 $obj\$(DEP_EXT): $deps
        rm -f \$\@.tmp; touch \$\@.tmp
       my $makedepprog = $config{makedepprog};
       if ($makedepprog eq "makedepend") {
           return <<"EOF";
 $obj\$(DEP_EXT): $deps
        rm -f \$\@.tmp; touch \$\@.tmp
-       \$(MAKEDEPEND) -f\$\@.tmp -o"|$obj" -- \$(CFLAGS)$incs -- $srcs \\
+       \$(MAKEDEPEND) -f\$\@.tmp -o"|$obj" -- \$(CFLAGS) $ecflags$incs -- $srcs \\
            2>/dev/null
        sed -e 's/^.*|//' -e 's/ \\/\\(\\\\.\\|[^ ]\\)*//g' -e '/: *\$\$/d' -e '/^\\(#.*\\| *\\)\$\$/d' \$\@.tmp > \$\@
        rm \$\@.tmp
 $obj\$(OBJ_EXT): $obj\$(DEP_EXT)
            2>/dev/null
        sed -e 's/^.*|//' -e 's/ \\/\\(\\\\.\\|[^ ]\\)*//g' -e '/: *\$\$/d' -e '/^\\(#.*\\| *\\)\$\$/d' \$\@.tmp > \$\@
        rm \$\@.tmp
 $obj\$(OBJ_EXT): $obj\$(DEP_EXT)
-       \$(CC) \$(CFLAGS)$incs -c -o \$\@ $srcs
+       \$(CC) \$(CFLAGS) $ecflags$incs -c -o \$\@ $srcs
 EOF
       }
       return <<"EOF";
 $obj\$(DEP_EXT): $deps
 EOF
       }
       return <<"EOF";
 $obj\$(DEP_EXT): $deps
-       \$(CC) \$(CFLAGS)$incs -MM -MF \$\@ -MQ $obj $srcs
+       \$(CC) \$(CFLAGS) $ecflags$incs -MM -MF \$\@ -MQ $obj $srcs
 $obj\$(OBJ_EXT): $obj\$(DEP_EXT)
 $obj\$(OBJ_EXT): $obj\$(DEP_EXT)
-       \$(CC) \$(CFLAGS)$incs -c -o \$\@ $srcs
+       \$(CC) \$(CFLAGS) $ecflags$incs -c -o \$\@ $srcs
 EOF
   }
   # On Unix, we build shlibs from static libs, so we're ignoring the
 EOF
   }
   # On Unix, we build shlibs from static libs, so we're ignoring the
index 4136673..e8786b0 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -983,14 +983,6 @@ if ($target{shared_target} eq "")
        $no_shared_warn = 1 if !$config{no_shared} && !$config{fips};
        $config{no_shared} = 1;
        }
        $no_shared_warn = 1 if !$config{no_shared} && !$config{fips};
        $config{no_shared} = 1;
        }
-if (!$config{no_shared})
-       {
-       if ($target{shared_cflag} ne "")
-               {
-               push @{$config{defines}}, "OPENSSL_PIC";
-               $config{cflags} = "$target{shared_cflag} $config{cflags}";
-               }
-       }
 
 if ($builder ne "mk1mf")
        {
 
 if ($builder ne "mk1mf")
        {
index a7cd757..c269a6d 100644 (file)
@@ -194,6 +194,7 @@ LIBS=   libcrypto.a libssl.a
 SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
 SHARED_SSL=libssl$(SHLIB_EXT)
 SHARED_LIBS={- '$(SHARED_CRYPTO) $(SHARED_SSL)' if (!$config{no_shared}) -}
 SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
 SHARED_SSL=libssl$(SHLIB_EXT)
 SHARED_LIBS={- '$(SHARED_CRYPTO) $(SHARED_SSL)' if (!$config{no_shared}) -}
+SHARED_CFLAG={- $target{shared_cflag} -}
 SHARED_LDFLAG={- $target{shared_ldflag}
                  # Unlike other OSes (like Solaris, Linux, Tru64,
                  # IRIX) BSD run-time linkers (tested OpenBSD, NetBSD
 SHARED_LDFLAG={- $target{shared_ldflag}
                  # Unlike other OSes (like Solaris, Linux, Tru64,
                  # IRIX) BSD run-time linkers (tested OpenBSD, NetBSD
@@ -249,9 +250,10 @@ CLEARENV=  TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS}     \
 # same language for uniform treatment.
 BUILDENV=      LC_ALL=C PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)'\
                CC='$(CC)' CFLAG='$(CFLAG)' CFLAG_Q='$(CFLAG_Q)'        \
 # same language for uniform treatment.
 BUILDENV=      LC_ALL=C PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)'\
                CC='$(CC)' CFLAG='$(CFLAG)' CFLAG_Q='$(CFLAG_Q)'        \
+               SHARED_CFLAG='$(SHARED_CFLAG)'                          \
                AS='$(CC)' ASFLAG='$(CFLAG) -c'                 \
                AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)'        \
                AS='$(CC)' ASFLAG='$(CFLAG) -c'                 \
                AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)'        \
-               CROSS_COMPILE='$(CROSS_COMPILE)'        \
+               CROSS_COMPILE='$(CROSS_COMPILE)'                \
                PERL='$(PERL)'  \
                SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)'     \
                DESTDIR='$(DESTDIR)'            \
                PERL='$(PERL)'  \
                SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)'     \
                DESTDIR='$(DESTDIR)'            \
index d04f75c..c8184e5 100644 (file)
@@ -21,7 +21,7 @@ RECURSIVE_MAKE=       [ -n "$(SDIRS)" ] && for i in $(SDIRS) ; do \
 PLIB_LDFLAG=
 EX_LIBS=
 
 PLIB_LDFLAG=
 EX_LIBS=
 
-CFLAGS= $(INCLUDE) $(CFLAG)
+CFLAGS= $(INCLUDE) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDE) $(ASFLAG)
 AFLAGS=$(ASFLAGS)
 CPUID_OBJ=mem_clr.o
 ASFLAGS= $(INCLUDE) $(ASFLAG)
 AFLAGS=$(ASFLAGS)
 CPUID_OBJ=mem_clr.o
index 98bfb0a..938ad3c 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 
 AES_ENC=aes_core.o aes_cbc.o
 
 
 AES_ENC=aes_core.o aes_cbc.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index b6c44e7..86f805b 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile README
 
 
 GENERAL=Makefile README
 
index 6e9f465..277aa9e 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 TEST=
 
 GENERAL=Makefile
 TEST=
index 14e2fe2..ee5c259 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 
 BF_ENC=                bf_enc.o
 
 
 BF_ENC=                bf_enc.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index ff35cfb..2bf8601 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 7574585..b14301a 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 
 BN_ASM=                bn_asm.o
 
 
 BN_ASM=                bn_asm.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 79eeac1..09b3488 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index ac3ffda..10c5a75 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 
 CMLL_ENC= camellia.o cmll_misc.o cmll_cbc.o
 
 
 CMLL_ENC= camellia.o cmll_misc.o cmll_cbc.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index cd62408..06f65e2 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 
 CAST_ENC=c_enc.o
 
 
 CAST_ENC=c_enc.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index de80ba4..33e41d5 100644 (file)
@@ -12,7 +12,7 @@ AR=           ar r
 
 CHACHA_ENC=chacha_enc.o
 
 
 CHACHA_ENC=chacha_enc.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 4488865..5abc139 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 5e5db74..cf074ea 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 6db1349..24c1231 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index c0c8cd8..e1bae36 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 5d186b8..100179d 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index c65c05b..248b53d 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 RANLIB=                ranlib
 DES_ENC=       des_enc.o fcrypt_b.o
 
 RANLIB=                ranlib
 DES_ENC=       des_enc.o fcrypt_b.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 473ad35..9ac52eb 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index dd5bdbe..a22dfa3 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 1f74735..58d0974 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index eb68dcd..1aa22d4 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 01dad47..8435e75 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index b2ff218..9329e91 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 100de31..5b24ae5 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index ffb80b5..ab8acab 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index c0f12e2..b3aafca 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index f7ddfe0..be4e08c 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index a9dc3df..ff90001 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 29eeb33..2692884 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index ff5a2c1..b45b6ce 100644 (file)
@@ -11,7 +11,7 @@ CFLAG=-g
 MAKEFILE=       Makefile
 AR=             ar r
 
 MAKEFILE=       Makefile
 AR=             ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index b1d98e1..aec94b6 100644 (file)
@@ -13,7 +13,7 @@ AR=             ar r
 
 MD5_ASM_OBJ=
 
 
 MD5_ASM_OBJ=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 8930d02..3c2275b 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 4d3c0b0..5e4415c 100644 (file)
@@ -12,7 +12,7 @@ AR=           ar r
 
 MODES_ASM_OBJ=
 
 
 MODES_ASM_OBJ=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 394da3b..64d138b 100644 (file)
@@ -11,7 +11,7 @@ MAKEFILE=     Makefile
 AR=            ar r
 PERL=          perl
 
 AR=            ar r
 PERL=          perl
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile README
 
 
 GENERAL=Makefile README
 
index 26d9774..5ce7d88 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile README
 
 
 GENERAL=Makefile README
 
index 8a23ef6..a522297 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 651f13f..165ca2d 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index a58e323..49b78c5 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 PLIB_LDFLAG=
 EX_LIBS=
 
 PLIB_LDFLAG=
 EX_LIBS=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile README
 
 
 GENERAL=Makefile README
 
index 8735b79..10f009f 100644 (file)
@@ -12,7 +12,7 @@ AR=           ar r
 
 POLY1305_ASM_OBJ=
 
 
 POLY1305_ASM_OBJ=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index bf9ff3e..8796faf 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 3eaf4e3..d124d0b 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index f0f72d1..fe2ef7d 100644 (file)
@@ -12,7 +12,7 @@ AR=           ar r
 
 RC4_ENC=rc4_enc.o rc4_skey.o
 
 
 RC4_ENC=rc4_enc.o rc4_skey.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 9efe7f9..bd7a1c6 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 
 RC5_ENC=               rc5_enc.o
 
 
 RC5_ENC=               rc5_enc.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 3aed997..8158a73 100644 (file)
@@ -13,7 +13,7 @@ AR=             ar r
 
 RIP_ASM_OBJ=
 
 
 RIP_ASM_OBJ=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 8779cc7..0e2e2bf 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index a6c85af..fe55942 100644 (file)
@@ -11,7 +11,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 2675869..afb161b 100644 (file)
@@ -13,7 +13,7 @@ AR=             ar r
 
 SHA1_ASM_OBJ=
 
 
 SHA1_ASM_OBJ=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 8b0c9c7..8aa422a 100644 (file)
@@ -8,7 +8,7 @@ OPENSSLDIR=     /usr/local/ssl
 INSTALLTOP=/usr/local/ssl
 AR=            ar r
 
 INSTALLTOP=/usr/local/ssl
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 22630c2..fbce5a5 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index f5d40b9..7f8648a 100644 (file)
@@ -14,7 +14,7 @@ AR=           ar r
 PLIB_LDFLAG=
 EX_LIBS=
 
 PLIB_LDFLAG=
 EX_LIBS=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL= Makefile
 
 
 GENERAL= Makefile
 
index 3229d52..e3810fa 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index c8f327a..46ae052 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile
 
 
 GENERAL=Makefile
 
index 6027883..a1be9fe 100644 (file)
@@ -13,7 +13,7 @@ AR=           ar r
 
 WP_ASM_OBJ=wp_block.o
 
 
 WP_ASM_OBJ=wp_block.o
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index 440ff72..4932622 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile README
 
 
 GENERAL=Makefile README
 
index 6dec02b..243d5c5 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile README
 
 
 GENERAL=Makefile README
 
index 99ba822..ea2ae2c 100644 (file)
@@ -18,7 +18,7 @@ PADLOCK_ASM_OBJ=
 PLIB_LDFLAG=
 EX_LIBS=
 
 PLIB_LDFLAG=
 EX_LIBS=
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
 ASFLAGS= $(INCLUDES) $(ASFLAG)
 AFLAGS= $(ASFLAGS)
 
index e56ffa0..28c427c 100644 (file)
@@ -10,7 +10,7 @@ CFLAG=-g
 MAKEFILE=      Makefile
 AR=            ar r
 
 MAKEFILE=      Makefile
 AR=            ar r
 
-CFLAGS= $(INCLUDES) $(CFLAG)
+CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
 
 GENERAL=Makefile README ssl-lib.com install.com
 
 
 GENERAL=Makefile README ssl-lib.com install.com
 
index 41aa0ec..08999bf 100755 (executable)
@@ -53,6 +53,7 @@ my %mf_import = (
        CC             => \$mf_cc,
        CFLAG          => \$mf_cflag,
        CFLAG_Q        => \$mf_cflag_q,
        CC             => \$mf_cc,
        CFLAG          => \$mf_cflag,
        CFLAG_Q        => \$mf_cflag_q,
+       SHARED_CFLAG   => \$mf_shared_cflag,
         DEPFLAG        => \$mf_depflag,
        CPUID_OBJ      => \$mf_cpuid_asm,
        BN_ASM         => \$mf_bn_asm,
         DEPFLAG        => \$mf_depflag,
        CPUID_OBJ      => \$mf_cpuid_asm,
        BN_ASM         => \$mf_bn_asm,
@@ -309,7 +310,7 @@ $cflags.=" -DOPENSSL_FIPS"    if $fips;
 $cflags.=" -DOPENSSL_NO_EC2M"    if $no_ec2m;
 $cflags.= " -DZLIB" if $zlib_opt;
 $cflags.= " -DZLIB_SHARED" if $zlib_opt == 2;
 $cflags.=" -DOPENSSL_NO_EC2M"    if $no_ec2m;
 $cflags.= " -DZLIB" if $zlib_opt;
 $cflags.= " -DZLIB_SHARED" if $zlib_opt == 2;
-$cflags.=" -DOPENSSL_PIC" if $shlib;
+$cflags.=" -DOPENSSL_PIC";
 
 if ($no_static_engine)
        {
 
 if ($no_static_engine)
        {
@@ -328,7 +329,7 @@ else
        { $cflags="$c_flags$cflags" if ($c_flags ne ""); }
 
 if ($orig_platform eq 'copy') {
        { $cflags="$c_flags$cflags" if ($c_flags ne ""); }
 
 if ($orig_platform eq 'copy') {
-    $cflags = $mf_cflag;
+    $cflags = "$mf_cflag $mf_shared_cflag";
     $cc = $mf_cc;
 }
 
     $cc = $mf_cc;
 }
 
index 2c11184..03dee98 100644 (file)
@@ -49,7 +49,7 @@ if ($FLAVOR =~ /WIN64/)
     # per 0.9.8 release remaining warnings were explicitly examined and
     # considered safe to ignore.
     # 
     # per 0.9.8 release remaining warnings were explicitly examined and
     # considered safe to ignore.
     # 
-    $base_cflags= " $mf_cflag";
+    $base_cflags= " $mf_cflag" . ($mf_shared_cflag ? " $mf_shared_cflag" : "");
     my $f = ($shlib and !$fipscanisterbuild)?' /MD':' /MT';
     $opt_cflags=$f.' /Ox';
     $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
     my $f = ($shlib and !$fipscanisterbuild)?' /MD':' /MT';
     $opt_cflags=$f.' /Ox';
     $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
@@ -138,7 +138,7 @@ elsif ($FLAVOR =~ /CE/)
     }
 else   # Win32
     {
     }
 else   # Win32
     {
-    $base_cflags= " $mf_cflag";
+    $base_cflags= " $mf_cflag" . ($mf_shared_cflag ? " $mf_shared_cflag" : "");
     my $f = ($shlib and !$fipscanisterbuild)?' /MD':' /MT';
     $opt_cflags=$f.' /Ox /O2 /Ob2';
     $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
     my $f = ($shlib and !$fipscanisterbuild)?' /MD':' /MT';
     $opt_cflags=$f.' /Ox /O2 /Ob2';
     $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';