diff options
Diffstat (limited to 'src/lib/libcrypto/util/pl/VC-32.pl')
-rw-r--r-- | src/lib/libcrypto/util/pl/VC-32.pl | 79 |
1 files changed, 69 insertions, 10 deletions
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl index 5f25fc41bf..c503bd52b9 100644 --- a/src/lib/libcrypto/util/pl/VC-32.pl +++ b/src/lib/libcrypto/util/pl/VC-32.pl | |||
@@ -6,6 +6,16 @@ | |||
6 | $ssl= "ssleay32"; | 6 | $ssl= "ssleay32"; |
7 | $crypto="libeay32"; | 7 | $crypto="libeay32"; |
8 | 8 | ||
9 | if ($fips && !$shlib) | ||
10 | { | ||
11 | $crypto="libeayfips32"; | ||
12 | $crypto_compat = "libeaycompat32.lib"; | ||
13 | } | ||
14 | else | ||
15 | { | ||
16 | $crypto="libeay32"; | ||
17 | } | ||
18 | |||
9 | $o='\\'; | 19 | $o='\\'; |
10 | $cp='$(PERL) util/copy.pl'; | 20 | $cp='$(PERL) util/copy.pl'; |
11 | $mkdir='$(PERL) util/mkdir-p.pl'; | 21 | $mkdir='$(PERL) util/mkdir-p.pl'; |
@@ -33,7 +43,7 @@ if ($FLAVOR =~ /WIN64/) | |||
33 | # considered safe to ignore. | 43 | # considered safe to ignore. |
34 | # | 44 | # |
35 | $base_cflags= " $mf_cflag"; | 45 | $base_cflags= " $mf_cflag"; |
36 | my $f = $shlib?' /MD':' /MT'; | 46 | my $f = $shlib || $fips ?' /MD':' /MT'; |
37 | $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib | 47 | $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib |
38 | $opt_cflags=$f.' /Ox'; | 48 | $opt_cflags=$f.' /Ox'; |
39 | $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; | 49 | $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; |
@@ -114,7 +124,7 @@ elsif ($FLAVOR =~ /CE/) | |||
114 | else # Win32 | 124 | else # Win32 |
115 | { | 125 | { |
116 | $base_cflags= " $mf_cflag"; | 126 | $base_cflags= " $mf_cflag"; |
117 | my $f = $shlib?' /MD':' /MT'; | 127 | my $f = $shlib || $fips ?' /MD':' /MT'; |
118 | $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib | 128 | $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib |
119 | $opt_cflags=$f.' /Ox /O2 /Ob2'; | 129 | $opt_cflags=$f.' /Ox /O2 /Ob2'; |
120 | $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; | 130 | $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; |
@@ -266,10 +276,19 @@ elsif ($shlib && $FLAVOR =~ /CE/) | |||
266 | 276 | ||
267 | sub do_lib_rule | 277 | sub do_lib_rule |
268 | { | 278 | { |
269 | local($objs,$target,$name,$shlib)=@_; | 279 | my($objs,$target,$name,$shlib,$ign,$base_addr) = @_; |
270 | local($ret); | 280 | local($ret); |
271 | 281 | ||
272 | $taget =~ s/\//$o/g if $o ne '/'; | 282 | $taget =~ s/\//$o/g if $o ne '/'; |
283 | my $base_arg; | ||
284 | if ($base_addr ne "") | ||
285 | { | ||
286 | $base_arg= " /base:$base_addr"; | ||
287 | } | ||
288 | else | ||
289 | { | ||
290 | $base_arg = ""; | ||
291 | } | ||
273 | if ($name ne "") | 292 | if ($name ne "") |
274 | { | 293 | { |
275 | $name =~ tr/a-z/A-Z/; | 294 | $name =~ tr/a-z/A-Z/; |
@@ -277,17 +296,37 @@ sub do_lib_rule | |||
277 | } | 296 | } |
278 | 297 | ||
279 | # $target="\$(LIB_D)$o$target"; | 298 | # $target="\$(LIB_D)$o$target"; |
280 | $ret.="$target: $objs\n"; | 299 | # $ret.="$target: $objs\n"; |
281 | if (!$shlib) | 300 | if (!$shlib) |
282 | { | 301 | { |
283 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | 302 | # $ret.="\t\$(RM) \$(O_$Name)\n"; |
303 | $ret.="$target: $objs\n"; | ||
284 | $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs\n<<\n"; | 304 | $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs\n<<\n"; |
285 | } | 305 | } |
286 | else | 306 | else |
287 | { | 307 | { |
288 | local($ex)=($target =~ /O_CRYPTO/)?'':' $(L_CRYPTO)'; | 308 | local($ex)=($target =~ /O_CRYPTO/)?'':' $(L_CRYPTO)'; |
289 | $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; | 309 | $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; |
290 | $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex \$(EX_LIBS)\n<<\n"; | 310 | |
311 | if ($fips && $target =~ /O_CRYPTO/) | ||
312 | { | ||
313 | $ret.="$target: $objs \$(PREMAIN_DSO_EXE)"; | ||
314 | $ret.="\n\tSET FIPS_LINK=\$(LINK)\n"; | ||
315 | $ret.="\tSET FIPS_CC=\$(CC)\n"; | ||
316 | $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n"; | ||
317 | $ret.="\tSET PREMAIN_DSO_EXE=\$(PREMAIN_DSO_EXE)\n"; | ||
318 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; | ||
319 | $ret.="\tSET FIPS_TARGET=$target\n"; | ||
320 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; | ||
321 | $ret.="\t\$(FIPSLINK) \$(MLFLAGS) /map $base_arg $efile$target "; | ||
322 | $ret.="$name @<<\n \$(SHLIB_EX_OBJ) $objs \$(EX_LIBS) "; | ||
323 | $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n"; | ||
324 | } | ||
325 | else | ||
326 | { | ||
327 | $ret.="$target: $objs"; | ||
328 | $ret.="\n\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex \$(EX_LIBS)\n<<\n"; | ||
329 | } | ||
291 | $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;2\n\n"; | 330 | $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;2\n\n"; |
292 | } | 331 | } |
293 | $ret.="\n"; | 332 | $ret.="\n"; |
@@ -296,15 +335,35 @@ sub do_lib_rule | |||
296 | 335 | ||
297 | sub do_link_rule | 336 | sub do_link_rule |
298 | { | 337 | { |
299 | local($target,$files,$dep_libs,$libs)=@_; | 338 | my($target,$files,$dep_libs,$libs,$standalone)=@_; |
300 | local($ret,$_); | 339 | local($ret,$_); |
301 | |||
302 | $file =~ s/\//$o/g if $o ne '/'; | 340 | $file =~ s/\//$o/g if $o ne '/'; |
303 | $n=&bname($targer); | 341 | $n=&bname($targer); |
304 | $ret.="$target: $files $dep_libs\n"; | 342 | $ret.="$target: $files $dep_libs\n"; |
305 | $ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n"; | 343 | if ($standalone == 1) |
306 | $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n"; | 344 | { |
307 | $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n"; | 345 | $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t"; |
346 | $ret.= "\$(EX_LIBS) " if ($files =~ /O_FIPSCANISTER/ && !$fipscanisterbuild); | ||
347 | $ret.="$files $libs\n<<\n"; | ||
348 | } | ||
349 | elsif ($standalone == 2) | ||
350 | { | ||
351 | $ret.="\tSET FIPS_LINK=\$(LINK)\n"; | ||
352 | $ret.="\tSET FIPS_CC=\$(CC)\n"; | ||
353 | $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n"; | ||
354 | $ret.="\tSET PREMAIN_DSO_EXE=\n"; | ||
355 | $ret.="\tSET FIPS_TARGET=$target\n"; | ||
356 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; | ||
357 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; | ||
358 | $ret.="\t\$(FIPSLINK) \$(LFLAGS) /map $efile$target @<<\n"; | ||
359 | $ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n"; | ||
360 | } | ||
361 | else | ||
362 | { | ||
363 | $ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n"; | ||
364 | $ret.="\t\$(APP_EX_OBJ) $files $libs\n<<\n"; | ||
365 | } | ||
366 | $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n"; | ||
308 | return($ret); | 367 | return($ret); |
309 | } | 368 | } |
310 | 369 | ||