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