summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/util/pl/VC-32.pl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/util/pl/VC-32.pl220
1 files changed, 220 insertions, 0 deletions
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl
new file mode 100644
index 0000000000..4e97dfa9af
--- /dev/null
+++ b/src/lib/libcrypto/util/pl/VC-32.pl
@@ -0,0 +1,220 @@
1#!/usr/local/bin/perl
2# VCw32lib.pl - the file for Visual C++ 4.[01] for windows NT, static libraries
3#
4
5$ssl= "ssleay32";
6
7if ($fips && !$shlib)
8 {
9 $crypto="libeayfips32";
10 $crypto_compat = "libeaycompat32.lib";
11 }
12else
13 {
14 $crypto="libeay32";
15 }
16
17$o='\\';
18$cp='copy nul+'; # Timestamps get stuffed otherwise
19$rm='del';
20
21$zlib_lib="zlib1.lib";
22
23# C compiler stuff
24$cc='cl';
25$cflags=' /MD /W3 /WX /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
26$cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
27$cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8
28$lflags="/nologo /subsystem:console /machine:I386 /opt:ref";
29$mlflags='';
30
31$out_def="out32";
32$tmp_def="tmp32";
33$inc_def="inc32";
34
35if ($debug)
36 {
37 $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DOPENSSL_SYSNAME_WIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
38 $lflags.=" /debug";
39 $mlflags.=' /debug';
40 }
41$cflags .= " -DOPENSSL_SYSNAME_WINNT" if $NT == 1;
42
43$obj='.obj';
44$ofile="/Fo";
45
46# EXE linking stuff
47$link="link";
48$efile="/out:";
49$exep='.exe';
50if ($no_sock)
51 { $ex_libs=""; }
52else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; }
53
54# static library stuff
55$mklib='lib';
56$ranlib='';
57$plib="";
58$libp=".lib";
59$shlibp=($shlib)?".dll":".lib";
60$lfile='/out:';
61
62$shlib_ex_obj="";
63$app_ex_obj="setargv.obj";
64if ($nasm) {
65 $asm='nasmw -f win32';
66 $afile='-o ';
67} else {
68 $asm='ml /Cp /coff /c /Cx';
69 $asm.=" /Zi" if $debug;
70 $afile='/Fo';
71}
72
73$bn_asm_obj='';
74$bn_asm_src='';
75$des_enc_obj='';
76$des_enc_src='';
77$bf_enc_obj='';
78$bf_enc_src='';
79
80if (!$no_asm && !$fips)
81 {
82 $bn_asm_obj='crypto\bn\asm\bn_win32.obj';
83 $bn_asm_src='crypto\bn\asm\bn_win32.asm';
84 $des_enc_obj='crypto\des\asm\d_win32.obj crypto\des\asm\y_win32.obj';
85 $des_enc_src='crypto\des\asm\d_win32.asm crypto\des\asm\y_win32.asm';
86 $bf_enc_obj='crypto\bf\asm\b_win32.obj';
87 $bf_enc_src='crypto\bf\asm\b_win32.asm';
88 $cast_enc_obj='crypto\cast\asm\c_win32.obj';
89 $cast_enc_src='crypto\cast\asm\c_win32.asm';
90 $rc4_enc_obj='crypto\rc4\asm\r4_win32.obj';
91 $rc4_enc_src='crypto\rc4\asm\r4_win32.asm';
92 $rc5_enc_obj='crypto\rc5\asm\r5_win32.obj';
93 $rc5_enc_src='crypto\rc5\asm\r5_win32.asm';
94 $md5_asm_obj='crypto\md5\asm\m5_win32.obj';
95 $md5_asm_src='crypto\md5\asm\m5_win32.asm';
96 $sha1_asm_obj='crypto\sha\asm\s1_win32.obj';
97 $sha1_asm_src='crypto\sha\asm\s1_win32.asm';
98 $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj';
99 $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm';
100 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
101 }
102
103if ($shlib)
104 {
105 $mlflags.=" $lflags /dll";
106# $cflags =~ s| /MD| /MT|;
107 $lib_cflag=" -D_WINDLL";
108 $out_def="out32dll";
109 $tmp_def="tmp32dll";
110 }
111
112$cflags.=" /Fd$out_def";
113
114sub do_lib_rule
115 {
116 local($objs,$target,$name,$shlib,$ign,$base_addr) = @_;
117 local($ret,$Name);
118
119 $taget =~ s/\//$o/g if $o ne '/';
120 ($Name=$name) =~ tr/a-z/A-Z/;
121 my $base_arg;
122 if ($base_addr ne "")
123 {
124 $base_arg= " /base:$base_addr";
125 }
126 else
127 {
128 $base_arg = "";
129 }
130
131
132# $target="\$(LIB_D)$o$target";
133 if (!$shlib)
134 {
135# $ret.="\t\$(RM) \$(O_$Name)\n";
136 $ret.="$target: $objs\n";
137 $ex =' advapi32.lib';
138 $ex.=" \$(FIPSLIB_D)${o}_chkstk.o" if $fips && $target =~ /O_CRYPTO/;
139 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n";
140 }
141 else
142 {
143 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
144 $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib';
145 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
146 if ($fips && $target =~ /O_CRYPTO/)
147 {
148 $ex.=" \$(FIPSLIB_D)${o}_chkstk.o";
149 $ret.="$target: $objs \$(PREMAIN_DSO_EXE)\n";
150 $ret.="\tSET FIPS_LINK=\$(LINK)\n";
151 $ret.="\tSET FIPS_CC=\$(CC)\n";
152 $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
153 $ret.="\tSET PREMAIN_DSO_EXE=\$(PREMAIN_DSO_EXE)\n";
154 $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
155 $ret.="\tSET FIPS_TARGET=$target\n";
156 $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
157 $ret.="\t\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
158 $ret.="/def:ms/${Name}.def @<<\n \$(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 @<<\n \$(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 $ret.="$target: $files $dep_libs\n";
178 if ($standalone)
179 {
180 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t";
181 $ret.="\$(FIPSLIB_D)${o}_chkstk.o " if ($files =~ /O_FIPSCANISTER/);
182 $ret.="$files $libs\n<<\n";
183 }
184 elsif ($fips && !$shlib)
185 {
186 $ret.="\tSET FIPS_LINK=\$(LINK)\n";
187 $ret.="\tSET FIPS_CC=\$(CC)\n";
188 $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
189 $ret.="\tSET PREMAIN_DSO_EXE=\n";
190 $ret.="\tSET FIPS_TARGET=$target\n";
191 $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
192 $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
193 $ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target @<<\n";
194 $ret.=" \$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
195 }
196 else
197 {
198 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
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,$dep_libs,$libs)=@_;
208 local($ret,$_);
209
210 $file =~ s/\//$o/g if $o ne '/';
211 $n=&bname($targer);
212 $ret.="$target: $files $dep_libs\n";
213 $ret.=" \$(MKCANISTER) $target <<\n";
214 $ret.="INPUT($files)\n<<\n";
215 $ret.="\n";
216 return($ret);
217 }
218
219
2201;