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
22162914Ssimon	{ $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -march=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';
46162914Ssimon	$cpuid_asm_obj='$(OBJ_D)\cpu-win32.o';
47162914Ssimon	$cpuid_asm_src='crypto/cpu-win32.s';
48160817Ssimon	$cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
4968654Skris	}
5068654Skris
5168654Skris
5255714Skris$obj='.o';
5355714Skris$ofile='-o ';
5455714Skris
5555714Skris# EXE linking stuff
5655714Skris$link='${CC}';
5755714Skris$lflags='${CFLAGS}';
5855714Skris$efile='-o ';
5955714Skris$exep='';
6055714Skris$ex_libs="-lwsock32 -lgdi32";
6155714Skris
6255714Skris# static library stuff
6355714Skris$mklib='ar r';
6455714Skris$mlflags='';
6555714Skris$ranlib='ranlib';
6655714Skris$plib='lib';
6755714Skris$libp=".a";
6855714Skris$shlibp=".a";
6955714Skris$lfile='';
7055714Skris
7155714Skris$asm='as';
7255714Skris$afile='-o ';
73110007Smarkm#$bn_asm_obj="";
74110007Smarkm#$bn_asm_src="";
75110007Smarkm#$des_enc_obj="";
76110007Smarkm#$des_enc_src="";
77110007Smarkm#$bf_enc_obj="";
78110007Smarkm#$bf_enc_src="";
7955714Skris
8055714Skrissub do_lib_rule
8155714Skris	{
8255714Skris	local($obj,$target,$name,$shlib)=@_;
8355714Skris	local($ret,$_,$Name);
8455714Skris
8555714Skris	$target =~ s/\//$o/g if $o ne '/';
8655714Skris	$target="$target";
8755714Skris	($Name=$name) =~ tr/a-z/A-Z/;
8855714Skris
8955714Skris	$ret.="$target: \$(${Name}OBJ)\n";
90120635Snectar	$ret.="\tif exist $target \$(RM) $target\n";
9155714Skris	$ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
9255714Skris	$ret.="\t\$(RANLIB) $target\n\n";
9355714Skris	}
9455714Skris
9555714Skrissub do_link_rule
9655714Skris	{
97160817Ssimon	local($target,$files,$dep_libs,$libs)=@_;
9855714Skris	local($ret,$_);
9955714Skris
10055714Skris	$file =~ s/\//$o/g if $o ne '/';
10155714Skris	$n=&bname($target);
10255714Skris	$ret.="$target: $files $dep_libs\n";
103160817Ssimon	$ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
10455714Skris	return($ret);
10555714Skris	}
10655714Skris1;
107