155714Skris#!/usr/local/bin/perl
255714Skris#
3120635Snectar# Mingw32.pl -- Mingw
455714Skris#
555714Skris
655714Skris$o='/';
755714Skris$cp='cp';
8120635Snectar$rm='rm -f';
955714Skris$mkdir='gmkdir';
1055714Skris
11120635Snectar$o='\\';
12120635Snectar$cp='copy';
13120635Snectar$rm='del';
14120635Snectar$mkdir='mkdir';
1555714Skris
1655714Skris# C compiler stuff
1755714Skris
1855714Skris$cc='gcc';
1955714Skrisif ($debug)
2068654Skris	{ $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; }
2155714Skriselse
22238405Sjkim	{ $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; }
2355714Skris
24160817Ssimonif ($gaswin and !$no_asm)
2568654Skris	{
26120635Snectar        $bn_asm_obj='$(OBJ_D)\bn-win32.o';
2768654Skris        $bn_asm_src='crypto/bn/asm/bn-win32.s';
28120635Snectar        $bnco_asm_obj='$(OBJ_D)\co-win32.o';
29110007Smarkm        $bnco_asm_src='crypto/bn/asm/co-win32.s';
30120635Snectar        $des_enc_obj='$(OBJ_D)\d-win32.o $(OBJ_D)\y-win32.o';
3168654Skris        $des_enc_src='crypto/des/asm/d-win32.s crypto/des/asm/y-win32.s';
32120635Snectar        $bf_enc_obj='$(OBJ_D)\b-win32.o';
3368654Skris        $bf_enc_src='crypto/bf/asm/b-win32.s';
34120635Snectar#       $cast_enc_obj='$(OBJ_D)\c-win32.o';
3568654Skris#       $cast_enc_src='crypto/cast/asm/c-win32.s';
36120635Snectar        $rc4_enc_obj='$(OBJ_D)\r4-win32.o';
3768654Skris        $rc4_enc_src='crypto/rc4/asm/r4-win32.s';
38120635Snectar        $rc5_enc_obj='$(OBJ_D)\r5-win32.o';
3968654Skris        $rc5_enc_src='crypto/rc5/asm/r5-win32.s';
40120635Snectar        $md5_asm_obj='$(OBJ_D)\m5-win32.o';
4168654Skris        $md5_asm_src='crypto/md5/asm/m5-win32.s';
42120635Snectar        $rmd160_asm_obj='$(OBJ_D)\rm-win32.o';
4368654Skris        $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s';
44120635Snectar        $sha1_asm_obj='$(OBJ_D)\s1-win32.o';
4568654Skris        $sha1_asm_src='crypto/sha/asm/s1-win32.s';
46160817Ssimon	$cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
4768654Skris	}
4868654Skris
4968654Skris
5055714Skris$obj='.o';
5155714Skris$ofile='-o ';
5255714Skris
5355714Skris# EXE linking stuff
5455714Skris$link='${CC}';
5555714Skris$lflags='${CFLAGS}';
5655714Skris$efile='-o ';
5755714Skris$exep='';
58238405Sjkim$ex_libs="-lws2_32 -lgdi32";
5955714Skris
6055714Skris# static library stuff
6155714Skris$mklib='ar r';
6255714Skris$mlflags='';
6355714Skris$ranlib='ranlib';
6455714Skris$plib='lib';
6555714Skris$libp=".a";
6655714Skris$shlibp=".a";
6755714Skris$lfile='';
6855714Skris
6955714Skris$asm='as';
7055714Skris$afile='-o ';
71110007Smarkm#$bn_asm_obj="";
72110007Smarkm#$bn_asm_src="";
73110007Smarkm#$des_enc_obj="";
74110007Smarkm#$des_enc_src="";
75110007Smarkm#$bf_enc_obj="";
76110007Smarkm#$bf_enc_src="";
7755714Skris
7855714Skrissub do_lib_rule
7955714Skris	{
8055714Skris	local($obj,$target,$name,$shlib)=@_;
8155714Skris	local($ret,$_,$Name);
8255714Skris
8355714Skris	$target =~ s/\//$o/g if $o ne '/';
8455714Skris	$target="$target";
8555714Skris	($Name=$name) =~ tr/a-z/A-Z/;
8655714Skris
8755714Skris	$ret.="$target: \$(${Name}OBJ)\n";
88120635Snectar	$ret.="\tif exist $target \$(RM) $target\n";
8955714Skris	$ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
9055714Skris	$ret.="\t\$(RANLIB) $target\n\n";
9155714Skris	}
9255714Skris
9355714Skrissub do_link_rule
9455714Skris	{
95160817Ssimon	local($target,$files,$dep_libs,$libs)=@_;
9655714Skris	local($ret,$_);
9755714Skris
9855714Skris	$file =~ s/\//$o/g if $o ne '/';
9955714Skris	$n=&bname($target);
10055714Skris	$ret.="$target: $files $dep_libs\n";
101296317Sdelphij	$ret.="\t\$(LINK_CMD) ${efile}$target \$(LFLAGS) $files $libs\n\n";
10255714Skris	return($ret);
10355714Skris	}
10455714Skris1;
105