summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/util/pl/BC-32.pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/util/pl/BC-32.pl')
-rw-r--r--src/lib/libcrypto/util/pl/BC-32.pl153
1 files changed, 77 insertions, 76 deletions
diff --git a/src/lib/libcrypto/util/pl/BC-32.pl b/src/lib/libcrypto/util/pl/BC-32.pl
index 3898d16f61..09c45a21a6 100644
--- a/src/lib/libcrypto/util/pl/BC-32.pl
+++ b/src/lib/libcrypto/util/pl/BC-32.pl
@@ -1,102 +1,121 @@
1#!/usr/bin/perl 1#!/usr/local/bin/perl
2# VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries 2# Borland C++ builder 3 and 4 -- Janez Jere <jj@void.si>
3# 3#
4 4
5$ssl= "ssleay32";
6$crypto="libeay32";
7$RSAref="RSAref32";
8
5$o='\\'; 9$o='\\';
6$cp='copy'; 10$cp='copy';
7$rm='del'; 11$rm='del';
8 12
9# C compiler stuff 13# C compiler stuff
10$cc='bcc32'; 14$cc='bcc32';
11 15$lflags="-ap -Tpe -x -Gn ";
16$mlflags='';
17
18$out_def="out32";
19$tmp_def="tmp32";
20$inc_def="inc32";
21#enable max error messages, disable most common warnings
22$cflags="-DWIN32_LEAN_AND_MEAN -j255 -w-aus -w-par -w-inl -c -tWC -tWM -DWINDOWS -DWIN32 -DL_ENDIAN ";
12if ($debug) 23if ($debug)
13 { $op="-v "; } 24{
14else { $op="-O "; } 25 $cflags.="-Od -y -v -vi- -D_DEBUG";
15 26 $mlflags.=' ';
16$cflags="-d $op -DL_ENDIAN "; 27}
17# I add the stack opt
18$base_lflags="-c";
19$lflags="$base_lflags";
20
21$cflags.=" -DWINDOWS -DWIN32";
22$app_cflag="-WC";
23$lib_cflag="-WC";
24$lflags.=" -Tpe";
25
26if ($shlib)
27 {
28 $mlflags="$base_lflags -Tpe"; # stack if defined in .def file
29 $libs="libw ldllcew";
30 }
31else 28else
32 { $mlflags=''; } 29{
30 $cflags.="-O2 -ff -fp";
31}
33 32
34$obj='.obj'; 33$obj='.obj';
35$ofile="-o"; 34$ofile="-o";
36 35
37# EXE linking stuff 36# EXE linking stuff
38$link="tlink32"; 37$link="ilink32";
39$efile=""; 38$efile="";
40$exep='.exe'; 39$exep='.exe';
41$ex_libs="CW32.LIB IMPORT32.LIB"; 40if ($no_sock)
42$ex_libs.=$no_sock?"":" wsock32.lib"; 41 { $ex_libs=""; }
43$shlib_ex_obj="" if $shlib; 42else { $ex_libs="cw32mt.lib import32.lib"; }
44$app_ex_obj="C0X32.OBJ";
45 43
46# static library stuff 44# static library stuff
47$mklib='tlib'; 45$mklib='tlib /P64';
48$ranlib=''; 46$ranlib='';
49$plib=""; 47$plib="";
50$libp=".lib"; 48$libp=".lib";
51$shlibp=($shlib)?".dll":".lib"; 49$shlibp=($shlib)?".dll":".lib";
52$lfile=''; 50$lfile='';
53 51
54$asm='ml /Cp /c /Cx'; 52$shlib_ex_obj="";
53$app_ex_obj="c0x32.obj";
54
55$asm='n_o_T_a_s_m';
56$asm.=" /Zi" if $debug;
55$afile='/Fo'; 57$afile='/Fo';
56if ($noasm) 58
59$bn_mulw_obj='';
60$bn_mulw_src='';
61$des_enc_obj='';
62$des_enc_src='';
63$bf_enc_obj='';
64$bf_enc_src='';
65
66if (!$no_asm)
57 { 67 {
58 $bn_mulw_obj=''; 68 $bn_mulw_obj='crypto\bn\asm\bn-win32.obj';
59 $bn_mulw_src=''; 69 $bn_mulw_src='crypto\bn\asm\bn-win32.asm';
70 $des_enc_obj='crypto\des\asm\d-win32.obj crypto\des\asm\y-win32.obj';
71 $des_enc_src='crypto\des\asm\d-win32.asm crypto\des\asm\y-win32.asm';
72 $bf_enc_obj='crypto\bf\asm\b-win32.obj';
73 $bf_enc_src='crypto\bf\asm\b-win32.asm';
74 $cast_enc_obj='crypto\cast\asm\c-win32.obj';
75 $cast_enc_src='crypto\cast\asm\c-win32.asm';
76 $rc4_enc_obj='crypto\rc4\asm\r4-win32.obj';
77 $rc4_enc_src='crypto\rc4\asm\r4-win32.asm';
78 $rc5_enc_obj='crypto\rc5\asm\r5-win32.obj';
79 $rc5_enc_src='crypto\rc5\asm\r5-win32.asm';
80 $md5_asm_obj='crypto\md5\asm\m5-win32.obj';
81 $md5_asm_src='crypto\md5\asm\m5-win32.asm';
82 $sha1_asm_obj='crypto\sha\asm\s1-win32.obj';
83 $sha1_asm_src='crypto\sha\asm\s1-win32.asm';
84 $rmd160_asm_obj='crypto\ripemd\asm\rm-win32.obj';
85 $rmd160_asm_src='crypto\ripemd\asm\rm-win32.asm';
86 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
60 } 87 }
61else 88
89if ($shlib)
62 { 90 {
63 $bn_mulw_obj='crypto\bn\asm\x86b32.obj'; 91 $mlflags.=" $lflags /dll";
64 $bn_mulw_src='crypto\bn\asm\x86m32.asm'; 92# $cflags =~ s| /MD| /MT|;
93 $lib_cflag=" /GD -D_WINDLL -D_DLL";
94 $out_def="out32dll";
95 $tmp_def="tmp32dll";
65 } 96 }
66 97
67sub do_lib_rule 98sub do_lib_rule
68 { 99 {
69 local($target,$name,$shlib)=@_; 100 local($objs,$target,$name,$shlib)=@_;
70 local($ret,$Name); 101 local($ret,$Name);
71 102
72 $taget =~ s/\//$o/g if $o ne '/'; 103 $taget =~ s/\//$o/g if $o ne '/';
73 ($Name=$name) =~ tr/a-z/A-Z/; 104 ($Name=$name) =~ tr/a-z/A-Z/;
74 105
75 $ret.="$target: \$(${Name}OBJ)\n"; 106# $target="\$(LIB_D)$o$target";
76 $ret.="\t\$(RM) \$(O_$Name)\n"; 107 $ret.="$target: $objs\n";
77
78 # Due to a pathetic line length limit, I unwrap the args.
79 local($lib_names)="";
80 local($dll_names)="";
81 foreach $_ (sort split(/\s+/,$Vars{"${Name}OBJ"}))
82 {
83 $lib_names.=" +$_ &\n";
84 $dll_names.=" $_\n";
85 }
86
87 if (!$shlib) 108 if (!$shlib)
88 { 109 {
89 $ret.="\t\$(MKLIB) $target & <<|\n$lib_names\n,\n|\n"; 110 # $ret.="\t\$(RM) \$(O_$Name)\n";
111 $ret.="\techo LIB $<\n";
112 $ret.="\t\$(MKLIB) $lfile$target \$(addprefix +, $objs)\n";
90 } 113 }
91 else 114 else
92 { 115 {
93 # $(SHLIB_EX_OBJ) 116 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
94 local($ex)=($Name eq "SSL")?' $(L_CRYPTO) winsock':""; 117 $ex.=' wsock32.lib gdi32.lib';
95 $ret.="\t\$(LINK) \$(MLFLAGS) @&&|\n"; 118 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
96 $ret.=$dll_names;
97 $ret.="\n $target\n\n $ex $libs\nms$o${name}16.def;\n|\n";
98 ($out_lib=$target) =~ s/O_/L_/;
99 $ret.="\timplib /nowep $out_lib $target\n\n";
100 } 119 }
101 $ret.="\n"; 120 $ret.="\n";
102 return($ret); 121 return($ret);
@@ -105,30 +124,12 @@ sub do_lib_rule
105sub do_link_rule 124sub do_link_rule
106 { 125 {
107 local($target,$files,$dep_libs,$libs)=@_; 126 local($target,$files,$dep_libs,$libs)=@_;
108 local($ret,$f,$_,@f); 127 local($ret,$_);
109 128
110 $file =~ s/\//$o/g if $o ne '/'; 129 $file =~ s/\//$o/g if $o ne '/';
111 $n=&bname($targer); 130 $n=&bname($targer);
112 $ret.="$target: $files $dep_libs\n"; 131 $ret.="$target: $files $dep_libs\n";
113 $ret.=" \$(LINK) @&&|"; 132 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n\n";
114
115 # Due to a pathetic line length limit, I have to unwrap the args.
116 $r=" \$(LFLAGS) ";
117 if ($files =~ /\(([^)]*)\)$/)
118 {
119 @a=('$(APP_EX_OBJ)');
120 push(@a,sort split(/\s+/,$Vars{$1}));
121 foreach $_ (@a)
122 {
123 $ret.="\n $r $_ +";
124 $r="";
125 }
126 chop($ret);
127 $ret.="\n";
128 }
129 else
130 { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; }
131 $ret.=" $target\n\n $libs\n\n|\n\n";
132 return($ret); 133 return($ret);
133 } 134 }
134 135