summaryrefslogtreecommitdiffstats
path: root/util/pl
diff options
context:
space:
mode:
authorUlf Möller <ulf@openssl.org>1999-05-06 00:46:34 +0000
committerUlf Möller <ulf@openssl.org>1999-05-06 00:46:34 +0000
commit31a674d8c9766d582596876b221bb685d6d32a91 (patch)
tree657a5edbf78c070ef6c6d379e2d6e6ef72abd41e /util/pl
parentb282fdae2561282ce8e6ad72aa88cbaabf5743ab (diff)
Support additional Win32 compilers.
Borland C submitted by: Janez Jere <jj@void.si>
Diffstat (limited to 'util/pl')
-rw-r--r--util/pl/BC-32.pl152
-rw-r--r--util/pl/Mingw32.pl79
2 files changed, 156 insertions, 75 deletions
diff --git a/util/pl/BC-32.pl b/util/pl/BC-32.pl
index d1dcadd94e..7305c95666 100644
--- a/util/pl/BC-32.pl
+++ b/util/pl/BC-32.pl
@@ -1,102 +1,122 @@
#!/usr/local/bin/perl
-# VCw16lib.pl - the file for Visual C++ 1.52b for windows, static libraries
+# Borland C++ builder 3 and 4 -- Janez Jere <jj@void.si>
#
+$ssl= "ssleay32";
+$crypto="libeay32";
+$RSAref="RSAref32";
+
$o='\\';
$cp='copy';
$rm='del';
# C compiler stuff
$cc='bcc32';
-
+$lflags="-ap -Tpe -x -Gn ";
+$mlflags='';
+
+$out_def="out32";
+$tmp_def="tmp32";
+$inc_def="inc32";
+#enable max error messages, disable most common errors, and be quiet
+$cflags="-j255 -w-aus -w-par -w-inl -c -tWC -tWM -DWINDOWS -DWIN32 -DL_ENDIAN ";
+$dcflags='n'
if ($debug)
- { $op="-v "; }
-else { $op="-O "; }
-
-$cflags="-d $op -DL_ENDIAN ";
-# I add the stack opt
-$base_lflags="-c";
-$lflags="$base_lflags";
-
-$cflags.=" -DWINDOWS -DWIN32";
-$app_cflag="-WC";
-$lib_cflag="-WC";
-$lflags.=" -Tpe";
-
-if ($shlib)
- {
- $mlflags="$base_lflags -Tpe"; # stack if defined in .def file
- $libs="libw ldllcew";
- }
+{
+ $cflags.="-Od -y -v -vi- -D_DEBUG";
+ $mlflags.=' ';
+}
else
- { $mlflags=''; }
+{
+ $cflags.="-O2 -ff -fp";
+}
$obj='.obj';
$ofile="-o";
# EXE linking stuff
-$link="tlink32";
+$link="ilink32";
$efile="";
$exep='.exe';
-$ex_libs="CW32.LIB IMPORT32.LIB";
-$ex_libs.=$no_sock?"":" wsock32.lib";
-$shlib_ex_obj="" if $shlib;
-$app_ex_obj="C0X32.OBJ";
+if ($no_sock)
+ { $ex_libs=""; }
+else { $ex_libs="cw32mt.lib import32.lib"; }
# static library stuff
-$mklib='tlib';
+$mklib='tlib /P64';
$ranlib='';
$plib="";
$libp=".lib";
$shlibp=($shlib)?".dll":".lib";
$lfile='';
-$asm='ml /Cp /c /Cx';
+$shlib_ex_obj="";
+$app_ex_obj="c0x32.obj";
+
+$asm='n_o_T_a_s_m';
+$asm.=" /Zi" if $debug;
$afile='/Fo';
-if ($noasm)
+
+$bn_mulw_obj='';
+$bn_mulw_src='';
+$des_enc_obj='';
+$des_enc_src='';
+$bf_enc_obj='';
+$bf_enc_src='';
+
+if (!$no_asm)
{
- $bn_asm_obj='';
- $bn_asm_src='';
+ $bn_mulw_obj='crypto\bn\asm\bn-win32.obj';
+ $bn_mulw_src='crypto\bn\asm\bn-win32.asm';
+ $des_enc_obj='crypto\des\asm\d-win32.obj crypto\des\asm\y-win32.obj';
+ $des_enc_src='crypto\des\asm\d-win32.asm crypto\des\asm\y-win32.asm';
+ $bf_enc_obj='crypto\bf\asm\b-win32.obj';
+ $bf_enc_src='crypto\bf\asm\b-win32.asm';
+ $cast_enc_obj='crypto\cast\asm\c-win32.obj';
+ $cast_enc_src='crypto\cast\asm\c-win32.asm';
+ $rc4_enc_obj='crypto\rc4\asm\r4-win32.obj';
+ $rc4_enc_src='crypto\rc4\asm\r4-win32.asm';
+ $rc5_enc_obj='crypto\rc5\asm\r5-win32.obj';
+ $rc5_enc_src='crypto\rc5\asm\r5-win32.asm';
+ $md5_asm_obj='crypto\md5\asm\m5-win32.obj';
+ $md5_asm_src='crypto\md5\asm\m5-win32.asm';
+ $sha1_asm_obj='crypto\sha\asm\s1-win32.obj';
+ $sha1_asm_src='crypto\sha\asm\s1-win32.asm';
+ $rmd160_asm_obj='crypto\ripemd\asm\rm-win32.obj';
+ $rmd160_asm_src='crypto\ripemd\asm\rm-win32.asm';
+ $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
}
-else
+
+if ($shlib)
{
- $bn_asm_obj='crypto\bn\asm\x86b32.obj';
- $bn_asm_src='crypto\bn\asm\x86m32.asm';
+ $mlflags.=" $lflags /dll";
+# $cflags =~ s| /MD| /MT|;
+ $lib_cflag=" /GD -D_WINDLL -D_DLL";
+ $out_def="out32dll";
+ $tmp_def="tmp32dll";
}
sub do_lib_rule
{
- local($target,$name,$shlib)=@_;
+ local($objs,$target,$name,$shlib)=@_;
local($ret,$Name);
$taget =~ s/\//$o/g if $o ne '/';
($Name=$name) =~ tr/a-z/A-Z/;
- $ret.="$target: \$(${Name}OBJ)\n";
- $ret.="\t\$(RM) \$(O_$Name)\n";
-
- # Due to a pathetic line length limit, I unwrap the args.
- local($lib_names)="";
- local($dll_names)="";
- foreach $_ (sort split(/\s+/,$Vars{"${Name}OBJ"}))
- {
- $lib_names.=" +$_ &\n";
- $dll_names.=" $_\n";
- }
-
+# $target="\$(LIB_D)$o$target";
+ $ret.="$target: $objs\n";
if (!$shlib)
{
- $ret.="\t\$(MKLIB) $target & <<|\n$lib_names\n,\n|\n";
+ # $ret.="\t\$(RM) \$(O_$Name)\n";
+ $ret.="\techo LIB $<\n";
+ $ret.="\t\$(MKLIB) $lfile$target \$(addprefix +, $objs)\n";
}
else
{
- # $(SHLIB_EX_OBJ)
- local($ex)=($Name eq "SSL")?' $(L_CRYPTO) winsock':"";
- $ret.="\t\$(LINK) \$(MLFLAGS) @&&|\n";
- $ret.=$dll_names;
- $ret.="\n $target\n\n $ex $libs\nms$o${name}16.def;\n|\n";
- ($out_lib=$target) =~ s/O_/L_/;
- $ret.="\timplib /nowep $out_lib $target\n\n";
+ local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
+ $ex.=' wsock32.lib gdi32.lib';
+ $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
}
$ret.="\n";
return($ret);
@@ -105,30 +125,12 @@ sub do_lib_rule
sub do_link_rule
{
local($target,$files,$dep_libs,$libs)=@_;
- local($ret,$f,$_,@f);
+ local($ret,$_);
$file =~ s/\//$o/g if $o ne '/';
$n=&bname($targer);
$ret.="$target: $files $dep_libs\n";
- $ret.=" \$(LINK) @&&|";
-
- # Due to a pathetic line length limit, I have to unwrap the args.
- $r=" \$(LFLAGS) ";
- if ($files =~ /\(([^)]*)\)$/)
- {
- @a=('$(APP_EX_OBJ)');
- push(@a,sort split(/\s+/,$Vars{$1}));
- foreach $_ (@a)
- {
- $ret.="\n $r $_ +";
- $r="";
- }
- chop($ret);
- $ret.="\n";
- }
- else
- { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; }
- $ret.=" $target\n\n $libs\n\n|\n\n";
+ $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n\n";
return($ret);
}
diff --git a/util/pl/Mingw32.pl b/util/pl/Mingw32.pl
new file mode 100644
index 0000000000..7993fe67f4
--- /dev/null
+++ b/util/pl/Mingw32.pl
@@ -0,0 +1,79 @@
+#!/usr/local/bin/perl
+#
+# unix.pl - the standard unix makefile stuff.
+#
+
+# Need the Cygwin32 file utilities
+$o='/';
+$cp='cp';
+$rm='rm';
+
+# gcc wouldn't accept backslashes in paths
+#$o='\\';
+#$cp='copy';
+#$rm='del';
+
+# C compiler stuff
+
+$cc='gcc';
+if ($debug)
+ { $cflags="-g2 -ggdb"; }
+else
+ { $cflags="-O3 -fomit-frame-pointer"; }
+$dcflags='n' # Make can't handle -DCFLAGS definition
+
+$obj='.o';
+$ofile='-o ';
+
+# EXE linking stuff
+$link='${CC}';
+$lflags='${CFLAGS}';
+$efile='-o ';
+$exep='';
+$ex_libs="-lwsock32 -lgdi32";
+
+# static library stuff
+$mklib='ar r';
+$mlflags='';
+$ranlib='ranlib';
+$plib='lib';
+$libp=".a";
+$shlibp=".a";
+$lfile='';
+
+$asm='as';
+$afile='-o ';
+$bn_asm_obj="";
+$bn_asm_src="";
+$des_enc_obj="";
+$des_enc_src="";
+$bf_enc_obj="";
+$bf_enc_src="";
+
+sub do_lib_rule
+ {
+ local($obj,$target,$name,$shlib)=@_;
+ local($ret,$_,$Name);
+
+ $target =~ s/\//$o/g if $o ne '/';
+ $target="$target";
+ ($Name=$name) =~ tr/a-z/A-Z/;
+
+ $ret.="$target: \$(${Name}OBJ)\n";
+ $ret.="\t\$(RM) $target\n";
+ $ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
+ $ret.="\t\$(RANLIB) $target\n\n";
+ }
+
+sub do_link_rule
+ {
+ local($target,$files,$dep_libs,$libs)=@_;
+ local($ret,$_);
+
+ $file =~ s/\//$o/g if $o ne '/';
+ $n=&bname($target);
+ $ret.="$target: $files $dep_libs\n";
+ $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
+ return($ret);
+ }
+1;