summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/util/pl
diff options
context:
space:
mode:
authordjm <>2010-10-01 22:59:01 +0000
committerdjm <>2010-10-01 22:59:01 +0000
commitfe047d8b632246cb2db3234a0a4f32e5c318857b (patch)
tree939b752540947d33507b3acc48d76a8bfb7c3dc3 /src/lib/libcrypto/util/pl
parent2ea67f4aa254b09ded62e6e14fc893bbe6381579 (diff)
downloadopenbsd-fe047d8b632246cb2db3234a0a4f32e5c318857b.tar.gz
openbsd-fe047d8b632246cb2db3234a0a4f32e5c318857b.tar.bz2
openbsd-fe047d8b632246cb2db3234a0a4f32e5c318857b.zip
resolve conflicts, fix local changes
Diffstat (limited to 'src/lib/libcrypto/util/pl')
-rw-r--r--src/lib/libcrypto/util/pl/BC-16.pl151
-rw-r--r--src/lib/libcrypto/util/pl/BC-32.pl2
-rw-r--r--src/lib/libcrypto/util/pl/Mingw32.pl6
-rw-r--r--src/lib/libcrypto/util/pl/VC-16.pl177
-rw-r--r--src/lib/libcrypto/util/pl/VC-32-GMAKE.pl222
-rw-r--r--src/lib/libcrypto/util/pl/VC-32.pl341
-rw-r--r--src/lib/libcrypto/util/pl/VC-CE.pl116
7 files changed, 113 insertions, 902 deletions
diff --git a/src/lib/libcrypto/util/pl/BC-16.pl b/src/lib/libcrypto/util/pl/BC-16.pl
deleted file mode 100644
index 8030653daa..0000000000
--- a/src/lib/libcrypto/util/pl/BC-16.pl
+++ /dev/null
@@ -1,151 +0,0 @@
1#!/usr/local/bin/perl
2# VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries
3#
4
5$o='\\';
6$cp='copy';
7$rm='del';
8
9# C compiler stuff
10$cc='bcc';
11
12if ($debug)
13 { $op="-v "; }
14else { $op="-O "; }
15
16$cflags="-d -ml $op -DL_ENDIAN";
17# I add the stack opt
18$base_lflags="/c /C";
19$lflags="$base_lflags";
20
21if ($win16)
22 {
23 $shlib=1;
24 $cflags.=" -DOPENSSL_SYSNAME_WIN16";
25 $app_cflag="-W";
26 $lib_cflag="-WD";
27 $lflags.="/Twe";
28 }
29else
30 {
31 $cflags.=" -DOENSSL_SYSNAME_MSDOS";
32 $lflags.=" /Tde";
33 }
34
35if ($shlib)
36 {
37 $mlflags=" /Twd $base_lflags"; # stack if defined in .def file
38 $libs="libw ldllcew";
39 $no_asm=1;
40 }
41else
42 { $mlflags=''; }
43
44$obj='.obj';
45$ofile="-o";
46
47# EXE linking stuff
48$link="tlink";
49$efile="";
50$exep='.exe';
51$ex_libs="CL";
52$ex_libs.=$no_sock?"":" winsock.lib";
53
54$app_ex_obj="C0L.obj ";
55$shlib_ex_obj="" if ($shlib);
56
57# static library stuff
58$mklib='tlib';
59$ranlib='echo no ranlib';
60$plib="";
61$libp=".lib";
62$shlibp=($shlib)?".dll":".lib";
63$lfile='';
64
65$asm='bcc -c -B -Tml';
66$afile='/o';
67if ($no_asm || $fips)
68 {
69 $bn_asm_obj='';
70 $bn_asm_src='';
71 }
72elsif ($asmbits == 32)
73 {
74 $bn_asm_obj='crypto\bn\asm\x86w32.obj';
75 $bn_asm_src='crypto\bn\asm\x86w32.asm';
76 }
77else
78 {
79 $bn_asm_obj='crypto\bn\asm\x86w16.obj';
80 $bn_asm_src='crypto\bn\asm\x86w16.asm';
81 }
82
83sub do_lib_rule
84 {
85 local($target,$name,$shlib)=@_;
86 local($ret,$Name);
87
88 $taget =~ s/\//$o/g if $o ne '/';
89 ($Name=$name) =~ tr/a-z/A-Z/;
90
91 $ret.="$target: \$(${Name}OBJ)\n";
92 $ret.="\t\$(RM) \$(O_$Name)\n";
93
94 # Due to a pathetic line length limit, I unwrap the args.
95 local($lib_names)="";
96 local($dll_names)="";
97 foreach $_ (sort split(/\s+/,$Vars{"${Name}OBJ"}))
98 {
99 $lib_names.=" +$_ &\n";
100 $dll_names.=" $_\n";
101 }
102
103 if (!$shlib)
104 {
105 $ret.="\t\$(MKLIB) $target & <<|\n$lib_names\n,\n|\n";
106 }
107 else
108 {
109 local($ex)=($Name eq "SSL")?' $(L_CRYPTO) winsock':"";
110 $ret.="\t\$(LINK) \$(MLFLAGS) @&&|\n";
111 $ret.=$dll_names;
112 $ret.="\n $target\n\n $ex $libs\nms$o${name}16.def;\n|\n";
113 ($out_lib=$target) =~ s/O_/L_/;
114 $ret.="\timplib /nowep $out_lib $target\n\n";
115 }
116 $ret.="\n";
117 return($ret);
118 }
119
120sub do_link_rule
121 {
122 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
123 local($ret,$f,$_,@f);
124
125 $file =~ s/\//$o/g if $o ne '/';
126 $n=&bname($target);
127 $ret.="$target: $files $dep_libs\n";
128 $ret.=" \$(LINK) @&&|";
129
130 # Due to a pathetic line length limit, I have to unwrap the args.
131 $ret.=" \$(LFLAGS) ";
132 if ($files =~ /\(([^)]*)\)$/)
133 {
134 $ret.=" \$(APP_EX_OBJ)";
135 foreach $_ (sort split(/\s+/,$Vars{$1}))
136 { $ret.="\n $r $_ +"; }
137 chop($ret);
138 $ret.="\n";
139 }
140 else
141 { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; }
142 $ret.=" $target\n\n $libs\n\n|\n";
143 if (defined $sha1file)
144 {
145 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
146 }
147 $ret.="\n";
148 return($ret);
149 }
150
1511;
diff --git a/src/lib/libcrypto/util/pl/BC-32.pl b/src/lib/libcrypto/util/pl/BC-32.pl
index 99b8c058d2..1f1e13fb40 100644
--- a/src/lib/libcrypto/util/pl/BC-32.pl
+++ b/src/lib/libcrypto/util/pl/BC-32.pl
@@ -117,7 +117,7 @@ ___
117 else 117 else
118 { 118 {
119 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':''; 119 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
120 $ex.=' wsock32.lib gdi32.lib'; 120 $ex.=' ws2_32.lib gdi32.lib';
121 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n"; 121 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
122 } 122 }
123 $ret.="\n"; 123 $ret.="\n";
diff --git a/src/lib/libcrypto/util/pl/Mingw32.pl b/src/lib/libcrypto/util/pl/Mingw32.pl
index 8f0483fb93..fe3fb27a78 100644
--- a/src/lib/libcrypto/util/pl/Mingw32.pl
+++ b/src/lib/libcrypto/util/pl/Mingw32.pl
@@ -19,7 +19,7 @@ $cc='gcc';
19if ($debug) 19if ($debug)
20 { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; } 20 { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; }
21else 21else
22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -march=i486 -Wall"; } 22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; }
23 23
24if ($gaswin and !$no_asm) 24if ($gaswin and !$no_asm)
25 { 25 {
@@ -43,8 +43,6 @@ if ($gaswin and !$no_asm)
43 $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s'; 43 $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s';
44 $sha1_asm_obj='$(OBJ_D)\s1-win32.o'; 44 $sha1_asm_obj='$(OBJ_D)\s1-win32.o';
45 $sha1_asm_src='crypto/sha/asm/s1-win32.s'; 45 $sha1_asm_src='crypto/sha/asm/s1-win32.s';
46 $cpuid_asm_obj='$(OBJ_D)\cpu-win32.o';
47 $cpuid_asm_src='crypto/cpu-win32.s';
48 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS"; 46 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
49 } 47 }
50 48
@@ -57,7 +55,7 @@ $link='${CC}';
57$lflags='${CFLAGS}'; 55$lflags='${CFLAGS}';
58$efile='-o '; 56$efile='-o ';
59$exep=''; 57$exep='';
60$ex_libs="-lwsock32 -lgdi32"; 58$ex_libs="-lws2_32 -lgdi32";
61 59
62# static library stuff 60# static library stuff
63$mklib='ar r'; 61$mklib='ar r';
diff --git a/src/lib/libcrypto/util/pl/VC-16.pl b/src/lib/libcrypto/util/pl/VC-16.pl
deleted file mode 100644
index 564ba3fd08..0000000000
--- a/src/lib/libcrypto/util/pl/VC-16.pl
+++ /dev/null
@@ -1,177 +0,0 @@
1#!/usr/local/bin/perl
2# VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries
3#
4
5$ssl= "ssleay16";
6$crypto="libeay16";
7
8$o='\\';
9$cp='copy';
10$rm='del';
11
12# C compiler stuff
13$cc='cl';
14
15$out_def="out16";
16$tmp_def="tmp16";
17$inc_def="inc16";
18
19if ($debug)
20 {
21 $op="/Od /Zi /Zd";
22 $base_lflags="/CO";
23 }
24else {
25 $op="/G2 /f- /Ocgnotb2";
26 }
27$base_lflags.=" /FARCALL /NOLOGO /NOD /SEG:1024 /ONERROR:NOEXE /NOE /PACKC:60000";
28if ($win16) { $base_lflags.=" /PACKD:60000"; }
29
30$cflags="/ALw /Gx- /Gt256 /Gf $op /W3 /WX -DL_ENDIAN /nologo";
31# I add the stack opt
32$lflags="$base_lflags /STACK:20000";
33
34if ($win16)
35 {
36 $cflags.=" -DOPENSSL_SYSNAME_WIN16";
37 $app_cflag="/Gw /FPi87";
38 $lib_cflag="/Gw";
39 $lib_cflag.=" -D_WINDLL -D_DLL" if $shlib;
40 $lib_cflag.=" -DWIN16TTY" if !$shlib;
41 $lflags.=" /ALIGN:256";
42 $ex_libs.="oldnames llibcewq libw";
43 }
44else
45 {
46 $no_sock=1;
47 $cflags.=" -DMSDOS";
48 $lflags.=" /EXEPACK";
49 $ex_libs.="oldnames.lib llibce.lib";
50 }
51
52if ($shlib)
53 {
54 $mlflags="$base_lflags";
55 $libs="oldnames ldllcew libw";
56 $shlib_ex_obj="";
57# $no_asm=1;
58 $out_def="out16dll";
59 $tmp_def="tmp16dll";
60 }
61else
62 { $mlflags=''; }
63
64$app_ex_obj="";
65
66$obj='.obj';
67$ofile="/Fo";
68
69# EXE linking stuff
70$link="link";
71$efile="";
72$exep='.exe';
73$ex_libs.=$no_sock?"":" winsock";
74
75# static library stuff
76$mklib='lib /PAGESIZE:1024';
77$ranlib='';
78$plib="";
79$libp=".lib";
80$shlibp=($shlib)?".dll":".lib";
81$lfile='';
82
83$asm='ml /Cp /c /Cx';
84$afile='/Fo';
85
86$bn_asm_obj='';
87$bn_asm_src='';
88$des_enc_obj='';
89$des_enc_src='';
90$bf_enc_obj='';
91$bf_enc_src='';
92
93if (!$no_asm && !$fips)
94 {
95 if ($asmbits == 32)
96 {
97 $bn_asm_obj='crypto\bn\asm\x86w32.obj';
98 $bn_asm_src='crypto\bn\asm\x86w32.asm';
99 }
100 else
101 {
102 $bn_asm_obj='crypto\bn\asm\x86w16.obj';
103 $bn_asm_src='crypto\bn\asm\x86w16.asm';
104 }
105 }
106
107sub do_lib_rule
108 {
109 local($objs,$target,$name,$shlib)=@_;
110 local($ret,$Name);
111
112 $taget =~ s/\//$o/g if $o ne '/';
113 ($Name=$name) =~ tr/a-z/A-Z/;
114
115# $target="\$(LIB_D)$o$target";
116 $ret.="$target: $objs\n";
117# $ret.="\t\$(RM) \$(O_$Name)\n";
118
119 # Due to a pathetic line length limit, I unwrap the args.
120 local($lib_names)="";
121 local($dll_names)=" \$(SHLIB_EX_OBJ) +\n";
122 ($obj)= ($objs =~ /\((.*)\)/);
123 foreach $_ (sort split(/\s+/,$Vars{$obj}))
124 {
125 $lib_names.="+$_ &\n";
126 $dll_names.=" $_ +\n";
127 }
128
129 if (!$shlib)
130 {
131 $ret.="\tdel $target\n";
132 $ret.="\t\$(MKLIB) @<<\n$target\ny\n$lib_names\n\n<<\n";
133 }
134 else
135 {
136 local($ex)=($target =~ /O_SSL/)?'$(L_CRYPTO)':"";
137 $ex.=' winsock';
138 $ret.="\t\$(LINK) \$(MLFLAGS) @<<\n";
139 $ret.=$dll_names;
140 $ret.="\n $target\n\n $ex $libs\nms$o${name}.def;\n<<\n";
141 ($out_lib=$target) =~ s/O_/L_/;
142 $ret.="\timplib /noignorecase /nowep $out_lib $target\n";
143 }
144 $ret.="\n";
145 return($ret);
146 }
147
148sub do_link_rule
149 {
150 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
151 local($ret,$f,$_,@f);
152
153 $file =~ s/\//$o/g if $o ne '/';
154 $n=&bname($targer);
155 $ret.="$target: $files $dep_libs\n";
156 $ret.=" \$(LINK) \$(LFLAGS) @<<\n";
157
158 # Due to a pathetic line length limit, I have to unwrap the args.
159 if ($files =~ /\(([^)]*)\)$/)
160 {
161 @a=('$(APP_EX_OBJ)');
162 push(@a,sort split(/\s+/,$Vars{$1}));
163 for $_ (@a)
164 { $ret.=" $_ +\n"; }
165 }
166 else
167 { $ret.=" \$(APP_EX_OBJ) $files"; }
168 $ret.="\n $target\n\n $libs\n\n<<\n";
169 if (defined $sha1file)
170 {
171 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
172 }
173 $ret.="\n";
174 return($ret);
175 }
176
1771;
diff --git a/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl b/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl
deleted file mode 100644
index b5bbcac6c2..0000000000
--- a/src/lib/libcrypto/util/pl/VC-32-GMAKE.pl
+++ /dev/null
@@ -1,222 +0,0 @@
1#!/usr/local/bin/perl
2# VCw32lib.pl - the file for Visual C++ 4.[01] for windows NT, static libraries
3#
4
5
6if ($fips && !$shlib)
7 {
8 $crypto="libeayfips32";
9 $crypto_compat = "libeaycompat32.lib";
10 }
11else
12 {
13 $crypto="libeay32";
14 }
15$ssl= "ssleay32";
16
17$o='/';
18#$cp='copy nul+'; # Timestamps get stuffed otherwise
19#$rm='del';
20
21$cp='cp';
22$rm='rm';
23
24$zlib_lib="zlib1.lib";
25
26# C compiler stuff
27$cc='cl';
28$cflags=' -MD -W3 -WX -Ox -O2 -Ob2 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
29$cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
30$cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8
31$lflags="-nologo -subsystem:console -machine:I386 -opt:ref";
32$mlflags='';
33
34$out_def="gmout32";
35$tmp_def="gmtmp32";
36$inc_def="gminc32";
37
38if ($debug)
39 {
40 $cflags=" -MDd -W3 -WX -Zi -Yd -Od -nologo -DOPENSSL_SYSNAME_WIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
41 $lflags.=" -debug";
42 $mlflags.=' -debug';
43 }
44$cflags .= " -DOPENSSL_SYSNAME_WINNT" if $NT == 1;
45
46$obj='.obj';
47$ofile="-Fo";
48
49# EXE linking stuff
50$link="link";
51$efile="-out:";
52$exep='.exe';
53if ($no_sock)
54 { $ex_libs=""; }
55else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; }
56
57# static library stuff
58$mklib='lib';
59$ranlib='';
60$plib="";
61$libp=".lib";
62$shlibp=($shlib)?".dll":".lib";
63$lfile='-out:';
64
65$shlib_ex_obj="";
66$app_ex_obj="setargv.obj";
67if ($nasm) {
68 $asm='nasmw -f win32';
69 $afile='-o ';
70} else {
71 $asm='ml -Cp -coff -c -Cx';
72 $asm.=" -Zi" if $debug;
73 $afile='-Fo';
74}
75
76$bn_asm_obj='';
77$bn_asm_src='';
78$des_enc_obj='';
79$des_enc_src='';
80$bf_enc_obj='';
81$bf_enc_src='';
82
83if (!$no_asm && !$fips)
84 {
85 $bn_asm_obj='crypto/bn/asm/bn_win32.obj';
86 $bn_asm_src='crypto/bn/asm/bn_win32.asm';
87 $des_enc_obj='crypto/des/asm/d_win32.obj crypto/des/asm/y_win32.obj';
88 $des_enc_src='crypto/des/asm/d_win32.asm crypto/des/asm/y_win32.asm';
89 $bf_enc_obj='crypto/bf/asm/b_win32.obj';
90 $bf_enc_src='crypto/bf/asm/b_win32.asm';
91 $cast_enc_obj='crypto/cast/asm/c_win32.obj';
92 $cast_enc_src='crypto/cast/asm/c_win32.asm';
93 $rc4_enc_obj='crypto/rc4/asm/r4_win32.obj';
94 $rc4_enc_src='crypto/rc4/asm/r4_win32.asm';
95 $rc5_enc_obj='crypto/rc5/asm/r5_win32.obj';
96 $rc5_enc_src='crypto/rc5/asm/r5_win32.asm';
97 $md5_asm_obj='crypto/md5/asm/m5_win32.obj';
98 $md5_asm_src='crypto/md5/asm/m5_win32.asm';
99 $sha1_asm_obj='crypto/sha/asm/s1_win32.obj';
100 $sha1_asm_src='crypto/sha/asm/s1_win32.asm';
101 $rmd160_asm_obj='crypto/ripemd/asm/rm_win32.obj';
102 $rmd160_asm_src='crypto/ripemd/asm/rm_win32.asm';
103 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
104 }
105
106if ($shlib)
107 {
108 $mlflags.=" $lflags -dll";
109# $cflags =~ s| -MD| -MT|;
110 $lib_cflag=" -D_WINDLL";
111 $out_def="gmout32dll";
112 $tmp_def="gmtmp32dll";
113 }
114
115$cflags.=" -Fd$out_def";
116
117sub do_lib_rule
118 {
119 local($objs,$target,$name,$shlib,$ign,$base_addr, $fips_get_sig, $fips_premain_src)=@_;
120 local($ret,$Name);
121
122 $taget =~ s/\//$o/g if $o ne '/';
123 ($Name=$name) =~ tr/a-z/A-Z/;
124 my $base_arg;
125 if ($base_addr ne "")
126 {
127 $base_arg= " -base:$base_addr";
128 }
129 else
130 {
131 $base_arg = "";
132 }
133
134
135# $target="\$(LIB_D)$o$target";
136 if (!$shlib)
137 {
138# $ret.="\t\$(RM) \$(O_$Name)\n";
139 $ret.="$target: $objs\n";
140 $ex =' advapi32.lib';
141 $ret.="\t\$(MKLIB) $lfile$target $objs $ex\n\n";
142 }
143 else
144 {
145 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
146 $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib';
147 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
148 if (defined $fips_get_sig)
149 {
150 $ret.="$target: \$(O_FIPSCANISTER) $objs $fips_get_sig\n";
151 $ret.="\tFIPS_LINK=\$(LINK) ";
152 $ret.="FIPS_CC=\$(CC) ";
153 $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" ";
154 $ret.="FIPS_PREMAIN_DSO=$fips_get_sig ";
155 $ret.="FIPS_TARGET=$target ";
156 $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) ";
157 $ret.="\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
158 $ret.="-def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs ";
159 $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n\n";
160 }
161 else
162 {
163 $ret.="$target: $objs\n";
164 $ret.="\t\$(LINK) \$(MLFLAGS) $base_arg $efile$target /def:ms/${Name}.def \$(SHLIB_EX_OBJ) $objs $ex\n\n";
165 }
166 }
167 $ret.="\n";
168 return($ret);
169 }
170
171sub do_link_rule
172 {
173 local($target,$files,$dep_libs,$libs,$standalone)=@_;
174 local($ret,$_);
175 $file =~ s/\//$o/g if $o ne '/';
176 $n=&bname($targer);
177 if ($standalone)
178 {
179 $ret.="$target: $files $dep_libs\n";
180 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
181 $ret.="$files $libs\n\n";
182 }
183 elsif ($fips && !$shlib)
184 {
185 $ret.="$target: \$(O_FIPSCANISTER) $files $dep_libs\n";
186 $ret.="\tFIPS_LINK=\$(LINK) ";
187 $ret.="FIPS_CC=\$(CC) ";
188 $ret.="FIPS_CC_ARGS=\"-Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\" ";
189 $ret.="FIPS_PREMAIN_DSO= ";
190 $ret.="FIPS_TARGET=$target ";
191 $ret.="FIPS_LIBDIR=\$(FIPSLIB_D) ";
192 $ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target ";
193 $ret.="\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n\n";
194 }
195 else
196 {
197 $ret.="$target: $files $dep_libs\n";
198 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target ";
199 $ret.="\$(APP_EX_OBJ) $files $libs\n\n";
200 }
201 $ret.="\n";
202 return($ret);
203 }
204
205sub do_rlink_rule
206 {
207 local($target,$files,$check_hash, $deps)=@_;
208 local($ret,$_);
209
210 $file =~ s/\//$o/g if $o ne '/';
211 $n=&bname($targer);
212 $ret.="$target: $check_hash $files $deps\n";
213 $ret.="\t\$(PERL) util${o}checkhash.pl -chdir fips-1.0 -program_path ..$o$check_hash\n";
214 $ret.="\t\$(MKCANISTER) $target $files\n";
215 $ret.="\t$check_hash $target > $target.sha1\n";
216 $ret.="\t\$(CP) fips-1.0${o}fips_premain.c \$(FIPSLIB_D)\n";
217 $ret.="\t$check_hash \$(FIPSLIB_D)${o}fips_premain.c > \$(FIPSLIB_D)${o}fips_premain.c.sha1\n\n";
218 return($ret);
219 }
220
221
2221;
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl
index 8eb3c6c4bd..c3e29fda96 100644
--- a/src/lib/libcrypto/util/pl/VC-32.pl
+++ b/src/lib/libcrypto/util/pl/VC-32.pl
@@ -4,21 +4,7 @@
4# 4#
5 5
6$ssl= "ssleay32"; 6$ssl= "ssleay32";
7 7$crypto="libeay32";
8if ($fips && !$shlib)
9 {
10 $crypto="libeayfips32";
11 $crypto_compat = "libeaycompat32.lib";
12 }
13else
14 {
15 $crypto="libeay32";
16 }
17
18if ($fipscanisterbuild)
19 {
20 $fips_canister_path = "\$(LIB_D)\\fipscanister.lib";
21 }
22 8
23$o='\\'; 9$o='\\';
24$cp='$(PERL) util/copy.pl'; 10$cp='$(PERL) util/copy.pl';
@@ -27,6 +13,10 @@ $rm='del /Q';
27 13
28$zlib_lib="zlib1.lib"; 14$zlib_lib="zlib1.lib";
29 15
16# Santize -L options for ms link
17$l_flags =~ s/-L("\[^"]+")/\/libpath:$1/g;
18$l_flags =~ s/-L(\S+)/\/libpath:$1/g;
19
30# C compiler stuff 20# C compiler stuff
31$cc='cl'; 21$cc='cl';
32if ($FLAVOR =~ /WIN64/) 22if ($FLAVOR =~ /WIN64/)
@@ -42,14 +32,28 @@ if ($FLAVOR =~ /WIN64/)
42 # per 0.9.8 release remaining warnings were explicitly examined and 32 # per 0.9.8 release remaining warnings were explicitly examined and
43 # considered safe to ignore. 33 # considered safe to ignore.
44 # 34 #
45 $base_cflags=' /W3 /Gs0 /GF /Gy /nologo -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DOPENSSL_SYSNAME_WIN32 -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE'; 35 $base_cflags= " $mf_cflag";
46 $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
47 $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8
48 my $f = $shlib?' /MD':' /MT'; 36 my $f = $shlib?' /MD':' /MT';
49 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib 37 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
50 $opt_cflags=$f.' /Ox'; 38 $opt_cflags=$f.' /Ox';
51 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; 39 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
52 $lflags="/nologo /subsystem:console /opt:ref"; 40 $lflags="/nologo /subsystem:console /opt:ref";
41
42 *::perlasm_compile_target = sub {
43 my ($target,$source,$bname)=@_;
44 my $ret;
45
46 $bname =~ s/(.*)\.[^\.]$/$1/;
47 $ret=<<___;
48\$(TMP_D)$o$bname.asm: $source
49 set ASM=\$(ASM)
50 \$(PERL) $source \$\@
51
52$target: \$(TMP_D)$o$bname.asm
53 \$(ASM) $afile\$\@ \$(TMP_D)$o$bname.asm
54
55___
56 }
53 } 57 }
54elsif ($FLAVOR =~ /CE/) 58elsif ($FLAVOR =~ /CE/)
55 { 59 {
@@ -99,18 +103,18 @@ elsif ($FLAVOR =~ /CE/)
99 } 103 }
100 104
101 $cc='$(CC)'; 105 $cc='$(CC)';
102 $base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -I$(WCECOMPAT)/include -DOPENSSL_SMALL_FOOTPRINT'; 106 $base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT';
103 $base_cflags.=" $wcecdefs"; 107 $base_cflags.=" $wcecdefs";
108 $base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'}));
109 $base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'}));
104 $opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics... 110 $opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
105 $dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG'; 111 $dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG';
106 $lflags="/nologo /opt:ref $wcelflag"; 112 $lflags="/nologo /opt:ref $wcelflag";
107 } 113 }
108else # Win32 114else # Win32
109 { 115 {
110 $base_cflags=' /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32'; 116 $base_cflags= " $mf_cflag";
111 $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8 117 my $f = $shlib?' /MD':' /MT';
112 $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8
113 my $f = $shlib || $fips ?' /MD':' /MT';
114 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib 118 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
115 $opt_cflags=$f.' /Ox /O2 /Ob2'; 119 $opt_cflags=$f.' /Ox /O2 /Ob2';
116 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; 120 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
@@ -118,22 +122,28 @@ else # Win32
118 } 122 }
119$mlflags=''; 123$mlflags='';
120 124
121$out_def="out32"; $out_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/); 125$out_def ="out32"; $out_def.="dll" if ($shlib);
122$tmp_def="tmp32"; $tmp_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/); 126 $out_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
127$tmp_def ="tmp32"; $tmp_def.="dll" if ($shlib);
128 $tmp_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
123$inc_def="inc32"; 129$inc_def="inc32";
124 130
125if ($debug) 131if ($debug)
126 { 132 {
127 $cflags=$dbg_cflags.$base_cflags; 133 $cflags=$dbg_cflags.$base_cflags;
128 $lflags.=" /debug";
129 $mlflags.=' /debug';
130 } 134 }
131else 135else
132 { 136 {
133 $cflags=$opt_cflags.$base_cflags; 137 $cflags=$opt_cflags.$base_cflags;
134 } 138 }
135 139
140# generate symbols.pdb unconditionally
141$app_cflag.=" /Zi /Fd$tmp_def/app";
142$lib_cflag.=" /Zi /Fd$tmp_def/lib";
143$lflags.=" /debug";
144
136$obj='.obj'; 145$obj='.obj';
146$asm_suffix='.asm';
137$ofile="/Fo"; 147$ofile="/Fo";
138 148
139# EXE linking stuff 149# EXE linking stuff
@@ -143,26 +153,23 @@ $efile="/out:";
143$exep='.exe'; 153$exep='.exe';
144if ($no_sock) { $ex_libs=''; } 154if ($no_sock) { $ex_libs=''; }
145elsif ($FLAVOR =~ /CE/) { $ex_libs='winsock.lib'; } 155elsif ($FLAVOR =~ /CE/) { $ex_libs='winsock.lib'; }
146else { $ex_libs='wsock32.lib'; } 156else { $ex_libs='ws2_32.lib'; }
147 157
148if ($FLAVOR =~ /CE/) 158if ($FLAVOR =~ /CE/)
149 { 159 {
150 $ex_libs.=' $(WCECOMPAT)/lib/wcecompatex.lib'; 160 $ex_libs.=' $(WCECOMPAT)/lib/wcecompatex.lib' if (defined($ENV{'WCECOMPAT'}));
161 $ex_libs.=' $(PORTSDK_LIBPATH)/portlib.lib' if (defined($ENV{'PORTSDK_LIBPATH'}));
151 $ex_libs.=' /nodefaultlib:oldnames.lib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86"); 162 $ex_libs.=' /nodefaultlib:oldnames.lib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86");
152 } 163 }
153else 164else
154 { 165 {
155 $ex_libs.=' gdi32.lib crypt32.lib advapi32.lib user32.lib'; 166 $ex_libs.=' gdi32.lib advapi32.lib crypt32.lib user32.lib';
156 $ex_libs.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/); 167 $ex_libs.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/ and `cl 2>&1` =~ /14\.00\.4[0-9]{4}\./);
168 # WIN32 UNICODE build gets linked with unicows.lib for
169 # backward compatibility with Win9x.
170 $ex_libs="unicows.lib $ex_libs" if ($FLAVOR =~ /WIN32/ and $cflags =~ /\-DUNICODE/);
157 } 171 }
158 172
159# As native NT API is pure UNICODE, our WIN-NT build defaults to UNICODE,
160# but gets linked with unicows.lib to ensure backward compatibility.
161if ($FLAVOR =~ /NT/)
162 {
163 $cflags.=" -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE";
164 $ex_libs="unicows.lib $ex_libs";
165 }
166# static library stuff 173# static library stuff
167$mklib='lib /nologo'; 174$mklib='lib /nologo';
168$ranlib=''; 175$ranlib='';
@@ -173,23 +180,30 @@ $lfile='/out:';
173 180
174$shlib_ex_obj=""; 181$shlib_ex_obj="";
175$app_ex_obj="setargv.obj" if ($FLAVOR !~ /CE/); 182$app_ex_obj="setargv.obj" if ($FLAVOR !~ /CE/);
176if ($nasm) { 183if ($FLAVOR =~ /WIN64A/) {
184 if (`nasm -v 2>NUL` =~ /NASM version ([0-9]+\.[0-9]+)/ && $1 >= 2.0) {
185 $asm='nasm -f win64 -DNEAR -Ox -g';
186 $afile='-o ';
187 } else {
188 $asm='ml64 /c /Cp /Cx /Zi';
189 $afile='/Fo';
190 }
191} elsif ($FLAVOR =~ /WIN64I/) {
192 $asm='ias -d debug';
193 $afile="-o ";
194} elsif ($nasm) {
177 my $ver=`nasm -v 2>NUL`; 195 my $ver=`nasm -v 2>NUL`;
178 my $vew=`nasmw -v 2>NUL`; 196 my $vew=`nasmw -v 2>NUL`;
179 # pick newest version 197 # pick newest version
180 $asm=($ver gt $vew?"nasm":"nasmw")." -f win32"; 198 $asm=($ver gt $vew?"nasm":"nasmw")." -f win32";
199 $asmtype="win32n";
181 $afile='-o '; 200 $afile='-o ';
182} elsif ($ml64) {
183 $asm='ml64 /c /Cp /Cx';
184 $asm.=' /Zi' if $debug;
185 $afile='/Fo';
186} else { 201} else {
187 $asm='ml /nologo /Cp /coff /c /Cx'; 202 $asm='ml /nologo /Cp /coff /c /Cx /Zi';
188 $asm.=" /Zi" if $debug;
189 $afile='/Fo'; 203 $afile='/Fo';
204 $asmtype="win32";
190} 205}
191 206
192$aes_asm_obj='';
193$bn_asm_obj=''; 207$bn_asm_obj='';
194$bn_asm_src=''; 208$bn_asm_src='';
195$des_enc_obj=''; 209$des_enc_obj='';
@@ -198,56 +212,26 @@ $bf_enc_obj='';
198$bf_enc_src=''; 212$bf_enc_src='';
199 213
200if (!$no_asm) 214if (!$no_asm)
201 {
202 if ($FLAVOR =~ "WIN32")
203 {
204 $aes_asm_obj='crypto\aes\asm\a_win32.obj';
205 $aes_asm_src='crypto\aes\asm\a_win32.asm';
206 $bn_asm_obj='crypto\bn\asm\bn_win32.obj crypto\bn\asm\mt_win32.obj';
207 $bn_asm_src='crypto\bn\asm\bn_win32.asm crypto\bn\asm\mt_win32.asm';
208 $bnco_asm_obj='crypto\bn\asm\co_win32.obj';
209 $bnco_asm_src='crypto\bn\asm\co_win32.asm';
210 $des_enc_obj='crypto\des\asm\d_win32.obj crypto\des\asm\y_win32.obj';
211 $des_enc_src='crypto\des\asm\d_win32.asm crypto\des\asm\y_win32.asm';
212 $bf_enc_obj='crypto\bf\asm\b_win32.obj';
213 $bf_enc_src='crypto\bf\asm\b_win32.asm';
214 $cast_enc_obj='crypto\cast\asm\c_win32.obj';
215 $cast_enc_src='crypto\cast\asm\c_win32.asm';
216 $rc4_enc_obj='crypto\rc4\asm\r4_win32.obj';
217 $rc4_enc_src='crypto\rc4\asm\r4_win32.asm';
218 $rc5_enc_obj='crypto\rc5\asm\r5_win32.obj';
219 $rc5_enc_src='crypto\rc5\asm\r5_win32.asm';
220 $md5_asm_obj='crypto\md5\asm\m5_win32.obj';
221 $md5_asm_src='crypto\md5\asm\m5_win32.asm';
222 $sha1_asm_obj='crypto\sha\asm\s1_win32.obj crypto\sha\asm\sha512-sse2.obj';
223 $sha1_asm_src='crypto\sha\asm\s1_win32.asm crypto\sha\asm\sha512-sse2.asm';
224 $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj';
225 $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm';
226 $cpuid_asm_obj='crypto\cpu_win32.obj';
227 $cpuid_asm_src='crypto\cpu_win32.asm';
228 $cflags.=" -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DAES_ASM -DBN_ASM -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
229 }
230 elsif ($FLAVOR =~ "WIN64A")
231 { 215 {
232 $aes_asm_obj='$(OBJ_D)\aes-x86_64.obj'; 216 win32_import_asm($mf_bn_asm, "bn", \$bn_asm_obj, \$bn_asm_src);
233 $aes_asm_src='crypto\aes\asm\aes-x86_64.asm'; 217 win32_import_asm($mf_aes_asm, "aes", \$aes_asm_obj, \$aes_asm_src);
234 $bn_asm_obj='$(OBJ_D)\x86_64-mont.obj $(OBJ_D)\bn_asm.obj'; 218 win32_import_asm($mf_des_asm, "des", \$des_enc_obj, \$des_enc_src);
235 $bn_asm_src='crypto\bn\asm\x86_64-mont.asm'; 219 win32_import_asm($mf_bf_asm, "bf", \$bf_enc_obj, \$bf_enc_src);
236 $sha1_asm_obj='$(OBJ_D)\sha1-x86_64.obj $(OBJ_D)\sha256-x86_64.obj $(OBJ_D)\sha512-x86_64.obj'; 220 win32_import_asm($mf_cast_asm, "cast", \$cast_enc_obj, \$cast_enc_src);
237 $sha1_asm_src='crypto\sha\asm\sha1-x86_64.asm crypto\sha\asm\sha256-x86_64.asm crypto\sha\asm\sha512-x86_64.asm'; 221 win32_import_asm($mf_rc4_asm, "rc4", \$rc4_enc_obj, \$rc4_enc_src);
238 $cpuid_asm_obj='$(OBJ_D)\cpuid-x86_64.obj'; 222 win32_import_asm($mf_rc5_asm, "rc5", \$rc5_enc_obj, \$rc5_enc_src);
239 $cpuid_asm_src='crypto\cpuid-x86_64.asm'; 223 win32_import_asm($mf_md5_asm, "md5", \$md5_asm_obj, \$md5_asm_src);
240 $cflags.=" -DOPENSSL_CPUID_OBJ -DAES_ASM -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM"; 224 win32_import_asm($mf_sha_asm, "sha", \$sha1_asm_obj, \$sha1_asm_src);
225 win32_import_asm($mf_rmd_asm, "ripemd", \$rmd160_asm_obj, \$rmd160_asm_src);
226 win32_import_asm($mf_wp_asm, "whrlpool", \$whirlpool_asm_obj, \$whirlpool_asm_src);
227 win32_import_asm($mf_cpuid_asm, "", \$cpuid_asm_obj, \$cpuid_asm_src);
228 $perl_asm = 1;
241 } 229 }
242 }
243 230
244if ($shlib && $FLAVOR !~ /CE/) 231if ($shlib && $FLAVOR !~ /CE/)
245 { 232 {
246 $mlflags.=" $lflags /dll"; 233 $mlflags.=" $lflags /dll";
247# $cflags =~ s| /MD| /MT|; 234 $lib_cflag.=" -D_WINDLL";
248 $lib_cflag=" -D_WINDLL";
249 $out_def="out32dll";
250 $tmp_def="tmp32dll";
251 # 235 #
252 # Engage Applink... 236 # Engage Applink...
253 # 237 #
@@ -267,8 +251,8 @@ $(INCO_D)\applink.c: ms\applink.c
267EXHEADER= $(EXHEADER) $(INCO_D)\applink.c 251EXHEADER= $(EXHEADER) $(INCO_D)\applink.c
268 252
269LIBS_DEP=$(LIBS_DEP) $(OBJ_D)\applink.obj 253LIBS_DEP=$(LIBS_DEP) $(OBJ_D)\applink.obj
254CRYPTOOBJ=$(OBJ_D)\uplink.obj $(CRYPTOOBJ)
270___ 255___
271$banner .= "CRYPTOOBJ=\$(OBJ_D)\\uplink.obj \$(CRYPTOOBJ)\n";
272 $banner.=<<'___' if ($FLAVOR =~ /WIN64/); 256 $banner.=<<'___' if ($FLAVOR =~ /WIN64/);
273CRYPTOOBJ=ms\uptable.obj $(CRYPTOOBJ) 257CRYPTOOBJ=ms\uptable.obj $(CRYPTOOBJ)
274___ 258___
@@ -276,119 +260,35 @@ ___
276elsif ($shlib && $FLAVOR =~ /CE/) 260elsif ($shlib && $FLAVOR =~ /CE/)
277 { 261 {
278 $mlflags.=" $lflags /dll"; 262 $mlflags.=" $lflags /dll";
279 $lib_cflag=" -D_WINDLL -D_DLL"; 263 $lflags.=' /entry:mainCRTstartup' if(defined($ENV{'PORTSDK_LIBPATH'}));
280 $out_def='out32dll_$(TARGETCPU)'; 264 $lib_cflag.=" -D_WINDLL -D_DLL";
281 $tmp_def='tmp32dll_$(TARGETCPU)';
282 } 265 }
283 266
284$cflags.=" /Fd$out_def";
285
286sub do_lib_rule 267sub do_lib_rule
287 { 268 {
288 my($objs,$target,$name,$shlib,$ign,$base_addr) = @_; 269 local($objs,$target,$name,$shlib)=@_;
289 local($ret); 270 local($ret);
290 271
291 $taget =~ s/\//$o/g if $o ne '/'; 272 $taget =~ s/\//$o/g if $o ne '/';
292 my $base_arg; 273 if ($name ne "")
293 if ($base_addr ne "")
294 {
295 $base_arg= " /base:$base_addr";
296 }
297 else
298 {
299 $base_arg = "";
300 }
301 if ($target =~ /O_CRYPTO/ && $fipsdso)
302 {
303 $name = "/def:ms/libeayfips.def";
304 }
305 elsif ($name ne "")
306 { 274 {
307 $name =~ tr/a-z/A-Z/; 275 $name =~ tr/a-z/A-Z/;
308 $name = "/def:ms/${name}.def"; 276 $name = "/def:ms/${name}.def";
309 } 277 }
278
310# $target="\$(LIB_D)$o$target"; 279# $target="\$(LIB_D)$o$target";
311# $ret.="$target: $objs\n"; 280 $ret.="$target: $objs\n";
312 if (!$shlib) 281 if (!$shlib)
313 { 282 {
314# $ret.="\t\$(RM) \$(O_$Name)\n"; 283# $ret.="\t\$(RM) \$(O_$Name)\n";
315 $ex =' '; 284 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs\n<<\n";
316 $ret.="$target: $objs\n";
317 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n";
318 } 285 }
319 else 286 else
320 { 287 {
321 my $ex = ""; 288 local($ex)=($target =~ /O_CRYPTO/)?'':' $(L_CRYPTO)';
322 if ($target =~ /O_SSL/)
323 {
324 $ex .= " \$(L_CRYPTO)";
325 #$ex .= " \$(L_FIPS)" if $fipsdso;
326 }
327 my $fipstarget;
328 if ($fipsdso)
329 {
330 $fipstarget = "O_FIPS";
331 }
332 else
333 {
334 $fipstarget = "O_CRYPTO";
335 }
336
337
338 if ($name eq "")
339 {
340 $ex.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/);
341 if ($target =~ /capi/)
342 {
343 $ex.=' crypt32.lib advapi32.lib';
344 }
345 }
346 elsif ($FLAVOR =~ /CE/)
347 {
348 $ex.=' winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib';
349 }
350 else
351 {
352 $ex.=' unicows.lib' if ($FLAVOR =~ /NT/);
353 $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib';
354 $ex.=' crypt32.lib';
355 $ex.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/);
356 }
357 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; 289 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
358 290 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex \$(EX_LIBS)\n<<\n";
359 if ($fips && $target =~ /$fipstarget/) 291 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;2\n\n";
360 {
361 $ex.= $mwex unless $fipscanisterbuild;
362 $ret.="$target: $objs \$(PREMAIN_DSO_EXE)";
363 if ($fipsdso)
364 {
365 $ex.=" \$(OBJ_D)\\\$(LIBFIPS).res";
366 $ret.=" \$(OBJ_D)\\\$(LIBFIPS).res";
367 $ret.=" ms/\$(LIBFIPS).def";
368 }
369 $ret.="\n\tSET FIPS_LINK=\$(LINK)\n";
370 $ret.="\tSET FIPS_CC=\$(CC)\n";
371 $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
372 $ret.="\tSET PREMAIN_DSO_EXE=\$(PREMAIN_DSO_EXE)\n";
373 $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
374 $ret.="\tSET FIPS_TARGET=$target\n";
375 $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
376 $ret.="\t\$(FIPSLINK) \$(MLFLAGS) /map $base_arg $efile$target ";
377 $ret.="$name @<<\n \$(SHLIB_EX_OBJ) $objs ";
378 $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
379 }
380 else
381 {
382 $ret.="$target: $objs";
383 if ($target =~ /O_CRYPTO/ && $fipsdso)
384 {
385 $ret .= " \$(O_FIPS)";
386 $ex .= " \$(L_FIPS)";
387 }
388 $ret.="\n\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
389 }
390
391 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;2\n\n";
392 } 292 }
393 $ret.="\n"; 293 $ret.="\n";
394 return($ret); 294 return($ret);
@@ -396,64 +296,43 @@ sub do_lib_rule
396 296
397sub do_link_rule 297sub do_link_rule
398 { 298 {
399 my($target,$files,$dep_libs,$libs,$standalone)=@_; 299 local($target,$files,$dep_libs,$libs)=@_;
400 local($ret,$_); 300 local($ret,$_);
301
401 $file =~ s/\//$o/g if $o ne '/'; 302 $file =~ s/\//$o/g if $o ne '/';
402 $n=&bname($targer); 303 $n=&bname($targer);
403 $ret.="$target: $files $dep_libs\n"; 304 $ret.="$target: $files $dep_libs\n";
404 if ($standalone == 1) 305 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n";
405 { 306 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
406 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t"; 307 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n";
407 $ret.= "\$(EX_LIBS) " if ($files =~ /O_FIPSCANISTER/ && !$fipscanisterbuild); 308 return($ret);
408 $ret.="$files $libs\n<<\n"; 309 }
409 } 310
410 elsif ($standalone == 2) 311sub win32_import_asm
312 {
313 my ($mf_var, $asm_name, $oref, $sref) = @_;
314 my $asm_dir;
315 if ($asm_name eq "")
411 { 316 {
412 $ret.="\tSET FIPS_LINK=\$(LINK)\n"; 317 $asm_dir = "crypto\\";
413 $ret.="\tSET FIPS_CC=\$(CC)\n";
414 $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
415 $ret.="\tSET PREMAIN_DSO_EXE=\n";
416 $ret.="\tSET FIPS_TARGET=$target\n";
417 $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
418 $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
419 $ret.="\t\$(FIPSLINK) \$(LFLAGS) /map $efile$target @<<\n";
420 $ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
421 } 318 }
422 else 319 else
423 { 320 {
424 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n"; 321 $asm_dir = "crypto\\$asm_name\\asm\\";
425 $ret.="\t\$(APP_EX_OBJ) $files $libs\n<<\n";
426 } 322 }
427 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n";
428 return($ret);
429 }
430 323
431sub do_rlink_rule 324 $$oref = "";
432 { 325 $mf_var =~ s/\.o$/.obj/g;
433 local($target,$rl_start, $rl_mid, $rl_end,$dep_libs,$libs)=@_;
434 local($ret,$_);
435 my $files = "$rl_start $rl_mid $rl_end";
436 326
437 $file =~ s/\//$o/g if $o ne '/'; 327 foreach (split(/ /, $mf_var))
438 $n=&bname($targer); 328 {
439 $ret.="$target: $files $dep_libs \$(FIPS_SHA1_EXE)\n"; 329 $$oref .= $asm_dir . $_ . " ";
440 $ret.="\t\$(PERL) ms\\segrenam.pl \$\$a $rl_start\n"; 330 }
441 $ret.="\t\$(PERL) ms\\segrenam.pl \$\$b $rl_mid\n"; 331 $$oref =~ s/ $//;
442 $ret.="\t\$(PERL) ms\\segrenam.pl \$\$c $rl_end\n"; 332 $$sref = $$oref;
443 $ret.="\t\$(MKLIB) $lfile$target @<<\n\t$files\n<<\n"; 333 $$sref =~ s/\.obj/.asm/g;
444 $ret.="\t\$(FIPS_SHA1_EXE) $target > ${target}.sha1\n";
445 $ret.="\t\$(PERL) util${o}copy.pl -stripcr fips${o}fips_premain.c \$(LIB_D)${o}fips_premain.c\n";
446 $ret.="\t\$(CP) fips${o}fips_premain.c.sha1 \$(LIB_D)${o}fips_premain.c.sha1\n";
447 $ret.="\n";
448 return($ret);
449 }
450 334
451sub do_sdef_rule
452 {
453 my $ret = "ms/\$(LIBFIPS).def: \$(O_FIPSCANISTER)\n";
454 $ret.="\t\$(PERL) util/mksdef.pl \$(MLFLAGS) /out:dummy.dll /def:ms/libeay32.def @<<\n \$(O_FIPSCANISTER)\n<<\n";
455 $ret.="\n";
456 return $ret;
457 } 335 }
458 336
337
4591; 3381;
diff --git a/src/lib/libcrypto/util/pl/VC-CE.pl b/src/lib/libcrypto/util/pl/VC-CE.pl
deleted file mode 100644
index 2fd0c4dd32..0000000000
--- a/src/lib/libcrypto/util/pl/VC-CE.pl
+++ /dev/null
@@ -1,116 +0,0 @@
1#!/usr/local/bin/perl
2# VC-CE.pl - the file for eMbedded Visual C++ 3.0 for windows CE, static libraries
3#
4
5$ssl= "ssleay32";
6$crypto="libeay32";
7$RSAref="RSAref32";
8
9$o='\\';
10$cp='copy nul+'; # Timestamps get stuffed otherwise
11$rm='del';
12
13# C compiler stuff
14$cc='$(CC)';
15$cflags=' /W3 /WX /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo $(WCETARGETDEFS) -DUNICODE -D_UNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -I$(WCECOMPAT)/include';
16$lflags='/nologo /subsystem:windowsce,$(WCELDVERSION) /machine:$(WCELDMACHINE) /opt:ref';
17$mlflags='';
18
19$out_def='out32_$(TARGETCPU)';
20$tmp_def='tmp32_$(TARGETCPU)';
21$inc_def="inc32";
22
23if ($debug)
24 {
25 $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DWIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
26 $lflags.=" /debug";
27 $mlflags.=' /debug';
28 }
29
30$obj='.obj';
31$ofile="/Fo";
32
33# EXE linking stuff
34$link="link";
35$efile="/out:";
36$exep='.exe';
37if ($no_sock)
38 { $ex_libs=""; }
39else { $ex_libs='winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib $(WCELDFLAGS)'; }
40
41# static library stuff
42$mklib='lib';
43$ranlib='';
44$plib="";
45$libp=".lib";
46$shlibp=($shlib)?".dll":".lib";
47$lfile='/out:';
48
49$shlib_ex_obj="";
50$app_ex_obj="";
51$app_ex_obj="";
52
53$bn_asm_obj='';
54$bn_asm_src='';
55$des_enc_obj='';
56$des_enc_src='';
57$bf_enc_obj='';
58$bf_enc_src='';
59
60if ($shlib)
61 {
62 $mlflags.=" $lflags /dll";
63# $cflags =~ s| /MD| /MT|;
64 $lib_cflag=" -D_WINDLL -D_DLL";
65 $out_def='out32dll_$(TARGETCPU)';
66 $tmp_def='tmp32dll_$(TARGETCPU)';
67 }
68
69$cflags.=" /Fd$out_def";
70
71sub do_lib_rule
72 {
73 local($objs,$target,$name,$shlib)=@_;
74 local($ret,$Name);
75
76 $taget =~ s/\//$o/g if $o ne '/';
77 ($Name=$name) =~ tr/a-z/A-Z/;
78
79# $target="\$(LIB_D)$o$target";
80 $ret.="$target: $objs\n";
81 if (!$shlib)
82 {
83# $ret.="\t\$(RM) \$(O_$Name)\n";
84 $ex =' ';
85 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n";
86 }
87 else
88 {
89 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
90# $ex.=' winsock.lib coredll.lib $(WCECOMPAT)/lib/wcecompatex.lib';
91 $ex.=' winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib';
92 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
93 }
94 $ret.="\n";
95 return($ret);
96 }
97
98sub do_link_rule
99 {
100 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
101 local($ret,$_);
102
103 $file =~ s/\//$o/g if $o ne '/';
104 $n=&bname($targer);
105 $ret.="$target: $files $dep_libs\n";
106 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
107 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
108 if (defined $sha1file)
109 {
110 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
111 }
112 $ret.="\n";
113 return($ret);
114 }
115
1161;