155714Skris#!/usr/local/bin/perl 255714Skris# 355714Skris# linux.pl - the standard unix makefile stuff. 455714Skris# 555714Skris 655714Skris$o='/'; 755714Skris$cp='/bin/cp'; 855714Skris$rm='/bin/rm -f'; 955714Skris 1055714Skris# C compiler stuff 1155714Skris 1255714Skris$cc='gcc'; 1355714Skrisif ($debug) 1455714Skris { $cflags="-g2 -ggdb -DREF_CHECK -DCRYPTO_MDEBUG"; } 1568651Skriselsif ($profile) 1668651Skris { $cflags="-pg -O3"; } 1755714Skriselse 1855714Skris { $cflags="-O3 -fomit-frame-pointer"; } 1955714Skris 2055714Skrisif (!$no_asm) 2155714Skris { 2255714Skris $bn_asm_obj='$(OBJ_D)/bn86-elf.o'; 2355714Skris $bn_asm_src='crypto/bn/asm/bn86unix.cpp'; 2468651Skris $bnco_asm_obj='$(OBJ_D)/co86-elf.o'; 2568651Skris $bnco_asm_src='crypto/bn/asm/co86unix.cpp'; 2655714Skris $des_enc_obj='$(OBJ_D)/dx86-elf.o $(OBJ_D)/yx86-elf.o'; 2755714Skris $des_enc_src='crypto/des/asm/dx86unix.cpp crypto/des/asm/yx86unix.cpp'; 2855714Skris $bf_enc_obj='$(OBJ_D)/bx86-elf.o'; 2955714Skris $bf_enc_src='crypto/bf/asm/bx86unix.cpp'; 3055714Skris $cast_enc_obj='$(OBJ_D)/cx86-elf.o'; 3155714Skris $cast_enc_src='crypto/cast/asm/cx86unix.cpp'; 3255714Skris $rc4_enc_obj='$(OBJ_D)/rx86-elf.o'; 3355714Skris $rc4_enc_src='crypto/rc4/asm/rx86unix.cpp'; 3455714Skris $rc5_enc_obj='$(OBJ_D)/r586-elf.o'; 3555714Skris $rc5_enc_src='crypto/rc5/asm/r586unix.cpp'; 3655714Skris $md5_asm_obj='$(OBJ_D)/mx86-elf.o'; 3755714Skris $md5_asm_src='crypto/md5/asm/mx86unix.cpp'; 3855714Skris $rmd160_asm_obj='$(OBJ_D)/rm86-elf.o'; 3955714Skris $rmd160_asm_src='crypto/ripemd/asm/rm86unix.cpp'; 4055714Skris $sha1_asm_obj='$(OBJ_D)/sx86-elf.o'; 4155714Skris $sha1_asm_src='crypto/sha/asm/sx86unix.cpp'; 42160814Ssimon $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS"; 4355714Skris } 4455714Skris 4555714Skris$cflags.=" -DTERMIO -DL_ENDIAN -m486 -Wall"; 4655714Skris 4755714Skrisif ($shlib) 4855714Skris { 4955714Skris $shl_cflag=" -DPIC -fpic"; 5055714Skris $shlibp=".so.$ssl_version"; 5155714Skris $so_shlibp=".so"; 5255714Skris } 5355714Skris 5455714Skrissub do_shlib_rule 5555714Skris { 5655714Skris local($obj,$target,$name,$shlib,$so_name)=@_; 5755714Skris local($ret,$_,$Name); 5855714Skris 5955714Skris $target =~ s/\//$o/g if $o ne '/'; 6055714Skris ($Name=$name) =~ tr/a-z/A-Z/; 6155714Skris 6255714Skris $ret.="$target: \$(${Name}OBJ)\n"; 6355714Skris $ret.="\t\$(RM) target\n"; 6455714Skris $ret.="\tgcc \${CFLAGS} -shared -Wl,-soname,$target -o $target \$(${Name}OBJ)\n"; 6555714Skris ($t=$target) =~ s/(^.*)\/[^\/]*$/$1/; 6655714Skris if ($so_name ne "") 6755714Skris { 6855714Skris $ret.="\t\$(RM) \$(LIB_D)$o$so_name\n"; 6955714Skris $ret.="\tln -s $target \$(LIB_D)$o$so_name\n\n"; 7055714Skris } 7155714Skris } 7255714Skris 7355714Skrissub do_link_rule 7455714Skris { 75160814Ssimon local($target,$files,$dep_libs,$libs)=@_; 7655714Skris local($ret,$_); 7755714Skris 7855714Skris $file =~ s/\//$o/g if $o ne '/'; 7955714Skris $n=&bname($target); 8055714Skris $ret.="$target: $files $dep_libs\n"; 81160814Ssimon $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 8255714Skris return($ret); 8355714Skris } 8455714Skris 8555714Skrissub do_asm_rule 8655714Skris { 8755714Skris local($target,$src)=@_; 8855714Skris local($ret,@s,@t,$i); 8955714Skris 9055714Skris $target =~ s/\//$o/g if $o ne "/"; 9155714Skris $src =~ s/\//$o/g if $o ne "/"; 9255714Skris 9355714Skris @s=split(/\s+/,$src); 9455714Skris @t=split(/\s+/,$target); 9555714Skris 9655714Skris for ($i=0; $i<=$#s; $i++) 9755714Skris { 9855714Skris $ret.="$t[$i]: $s[$i]\n"; 9955714Skris $ret.="\tgcc -E -DELF \$(SRC_D)$o$s[$i]|\$(AS) $afile$t[$i]\n\n"; 10055714Skris } 10155714Skris return($ret); 10255714Skris } 10355714Skris 10455714Skris1; 105