This commit was generated by cvs2svn to track changes on a CVS vendor
[openssl.git] / util / pl / VC-32.pl
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;