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