diff options
Diffstat (limited to 'src/lib/libcrypto/util/pl/BC-32.pl')
-rw-r--r-- | src/lib/libcrypto/util/pl/BC-32.pl | 153 |
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 "; | ||
12 | if ($debug) | 23 | if ($debug) |
13 | { $op="-v "; } | 24 | { |
14 | else { $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 | |||
26 | if ($shlib) | ||
27 | { | ||
28 | $mlflags="$base_lflags -Tpe"; # stack if defined in .def file | ||
29 | $libs="libw ldllcew"; | ||
30 | } | ||
31 | else | 28 | else |
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"; | 40 | if ($no_sock) |
42 | $ex_libs.=$no_sock?"":" wsock32.lib"; | 41 | { $ex_libs=""; } |
43 | $shlib_ex_obj="" if $shlib; | 42 | else { $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'; |
56 | if ($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 | |||
66 | if (!$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 | } |
61 | else | 88 | |
89 | if ($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 | ||
67 | sub do_lib_rule | 98 | sub 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 | |||
105 | sub do_link_rule | 124 | sub 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 | ||