]>
Commit | Line | Data |
---|---|---|
d02b48c6 RE |
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 | $crypto="libeay32"; | |
7 | $RSAref="RSAref32"; | |
8 | ||
9 | $o='\\'; | |
10 | $cp='copy'; | |
11 | $rm='del'; | |
12 | ||
13 | # C compiler stuff | |
14 | $cc='cl'; | |
15 | $cflags='/W3 /WX /G5 /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo -DWIN32 -DL_ENDIAN'; | |
16 | $lflags="/nologo /subsystem:console /machine:I386 /opt:ref"; | |
17 | $mlflags=''; | |
18 | if ($debug) | |
19 | { | |
20 | $cflags="/W3 /WX /Zi /Yd /Od /nologo -DWIN32 -D_DEBUG -DL_ENDIAN"; | |
21 | $lflags.=" /debug"; | |
22 | $mlflags.=' /debug'; | |
23 | } | |
24 | $obj='.obj'; | |
25 | $ofile="/Fo"; | |
26 | ||
27 | # EXE linking stuff | |
28 | $link="link"; | |
29 | $efile="/out:"; | |
30 | $exep='.exe'; | |
31 | if ($no_sock) | |
32 | { $ex_libs=""; } | |
33 | else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; } | |
34 | ||
35 | # static library stuff | |
36 | $mklib='lib'; | |
37 | $ranlib=''; | |
38 | $plib=""; | |
39 | $libp=".lib"; | |
40 | $shlibp=($shlib)?".dll":".lib"; | |
41 | $lfile='/out:'; | |
42 | ||
43 | $shlib_ex_obj=""; | |
44 | $app_ex_obj="setargv.obj"; | |
45 | ||
46 | $asm='ml /Cp /coff /c /Cx'; | |
47 | $afile='/Fo'; | |
48 | ||
49 | $bn_mulw_obj=''; | |
50 | $bn_mulw_src=''; | |
51 | $des_enc_obj=''; | |
52 | $des_enc_src=''; | |
53 | $bf_enc_obj=''; | |
54 | $bf_enc_src=''; | |
55 | ||
56 | if (!$no_asm) | |
57 | { | |
58 | $bn_mulw_obj='crypto\bn\asm\x86nt32.obj'; | |
59 | $bn_mulw_src='crypto\bn\asm\x86nt32.asm'; | |
60 | $des_enc_obj='crypto\des\asm\d-win32.obj crypto\des\asm\c-win32.obj'; | |
61 | $des_enc_src='crypto\des\asm\d-win32.asm crypto\des\asm\c-win32.asm'; | |
62 | $bf_enc_obj='crypto\bf\asm\b-win32.obj'; | |
63 | $bf_enc_src='crypto\bf\asm\b-win32.asm'; | |
64 | } | |
65 | ||
66 | if ($shlib) | |
67 | { | |
68 | $mlflags.=" $lflags /dll"; | |
69 | $cflags.=" /MD"; | |
70 | $cflags.="d" if ($debug); | |
71 | $lib_cflag=" /GD"; | |
72 | } | |
73 | ||
74 | sub do_lib_rule | |
75 | { | |
76 | local($objs,$target,$name,$shlib)=@_; | |
77 | local($ret,$Name); | |
78 | ||
79 | $taget =~ s/\//$o/g if $o ne '/'; | |
80 | ($Name=$name) =~ tr/a-z/A-Z/; | |
81 | ||
82 | $ret.="$target: $objs\n"; | |
83 | if (!$shlib) | |
84 | { | |
85 | # $ret.="\t\$(RM) \$(O_$Name)\n"; | |
86 | $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs\n<<\n"; | |
87 | } | |
88 | else | |
89 | { | |
90 | local($ex)=($target eq '$(O_SSL)')?' $(L_CRYPTO)':''; | |
91 | $ex.=' wsock32.lib gdi32.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 | ||
98 | sub do_link_rule | |
99 | { | |
100 | local($target,$files,$dep_libs,$libs)=@_; | |
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\n"; | |
108 | return($ret); | |
109 | } | |
110 | ||
111 | 1; |