2000-01-10 06:22:05 +00:00
|
|
|
#!/usr/local/bin/perl
|
|
|
|
#
|
|
|
|
# linux.pl - the standard unix makefile stuff.
|
|
|
|
#
|
|
|
|
|
|
|
|
$o='/';
|
|
|
|
$cp='/bin/cp';
|
|
|
|
$rm='/bin/rm -f';
|
|
|
|
|
|
|
|
# C compiler stuff
|
|
|
|
|
|
|
|
$cc='gcc';
|
|
|
|
if ($debug)
|
|
|
|
{ $cflags="-g2 -ggdb -DREF_CHECK -DCRYPTO_MDEBUG"; }
|
2000-11-13 01:03:58 +00:00
|
|
|
elsif ($profile)
|
|
|
|
{ $cflags="-pg -O3"; }
|
2000-01-10 06:22:05 +00:00
|
|
|
else
|
|
|
|
{ $cflags="-O3 -fomit-frame-pointer"; }
|
|
|
|
|
|
|
|
if (!$no_asm)
|
|
|
|
{
|
|
|
|
$bn_asm_obj='$(OBJ_D)/bn86-elf.o';
|
|
|
|
$bn_asm_src='crypto/bn/asm/bn86unix.cpp';
|
2000-11-13 01:03:58 +00:00
|
|
|
$bnco_asm_obj='$(OBJ_D)/co86-elf.o';
|
|
|
|
$bnco_asm_src='crypto/bn/asm/co86unix.cpp';
|
2000-01-10 06:22:05 +00:00
|
|
|
$des_enc_obj='$(OBJ_D)/dx86-elf.o $(OBJ_D)/yx86-elf.o';
|
|
|
|
$des_enc_src='crypto/des/asm/dx86unix.cpp crypto/des/asm/yx86unix.cpp';
|
|
|
|
$bf_enc_obj='$(OBJ_D)/bx86-elf.o';
|
|
|
|
$bf_enc_src='crypto/bf/asm/bx86unix.cpp';
|
|
|
|
$cast_enc_obj='$(OBJ_D)/cx86-elf.o';
|
|
|
|
$cast_enc_src='crypto/cast/asm/cx86unix.cpp';
|
|
|
|
$rc4_enc_obj='$(OBJ_D)/rx86-elf.o';
|
|
|
|
$rc4_enc_src='crypto/rc4/asm/rx86unix.cpp';
|
|
|
|
$rc5_enc_obj='$(OBJ_D)/r586-elf.o';
|
|
|
|
$rc5_enc_src='crypto/rc5/asm/r586unix.cpp';
|
|
|
|
$md5_asm_obj='$(OBJ_D)/mx86-elf.o';
|
|
|
|
$md5_asm_src='crypto/md5/asm/mx86unix.cpp';
|
|
|
|
$rmd160_asm_obj='$(OBJ_D)/rm86-elf.o';
|
|
|
|
$rmd160_asm_src='crypto/ripemd/asm/rm86unix.cpp';
|
|
|
|
$sha1_asm_obj='$(OBJ_D)/sx86-elf.o';
|
|
|
|
$sha1_asm_src='crypto/sha/asm/sx86unix.cpp';
|
2006-07-29 19:10:21 +00:00
|
|
|
$cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
|
2000-01-10 06:22:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
$cflags.=" -DTERMIO -DL_ENDIAN -m486 -Wall";
|
|
|
|
|
|
|
|
if ($shlib)
|
|
|
|
{
|
|
|
|
$shl_cflag=" -DPIC -fpic";
|
|
|
|
$shlibp=".so.$ssl_version";
|
|
|
|
$so_shlibp=".so";
|
|
|
|
}
|
|
|
|
|
|
|
|
sub do_shlib_rule
|
|
|
|
{
|
|
|
|
local($obj,$target,$name,$shlib,$so_name)=@_;
|
|
|
|
local($ret,$_,$Name);
|
|
|
|
|
|
|
|
$target =~ s/\//$o/g if $o ne '/';
|
|
|
|
($Name=$name) =~ tr/a-z/A-Z/;
|
|
|
|
|
|
|
|
$ret.="$target: \$(${Name}OBJ)\n";
|
|
|
|
$ret.="\t\$(RM) target\n";
|
|
|
|
$ret.="\tgcc \${CFLAGS} -shared -Wl,-soname,$target -o $target \$(${Name}OBJ)\n";
|
|
|
|
($t=$target) =~ s/(^.*)\/[^\/]*$/$1/;
|
|
|
|
if ($so_name ne "")
|
|
|
|
{
|
|
|
|
$ret.="\t\$(RM) \$(LIB_D)$o$so_name\n";
|
|
|
|
$ret.="\tln -s $target \$(LIB_D)$o$so_name\n\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
sub do_link_rule
|
|
|
|
{
|
2006-07-29 19:10:21 +00:00
|
|
|
local($target,$files,$dep_libs,$libs)=@_;
|
2000-01-10 06:22:05 +00:00
|
|
|
local($ret,$_);
|
|
|
|
|
|
|
|
$file =~ s/\//$o/g if $o ne '/';
|
|
|
|
$n=&bname($target);
|
|
|
|
$ret.="$target: $files $dep_libs\n";
|
2006-07-29 19:10:21 +00:00
|
|
|
$ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
|
2000-01-10 06:22:05 +00:00
|
|
|
return($ret);
|
|
|
|
}
|
|
|
|
|
|
|
|
sub do_asm_rule
|
|
|
|
{
|
|
|
|
local($target,$src)=@_;
|
|
|
|
local($ret,@s,@t,$i);
|
|
|
|
|
|
|
|
$target =~ s/\//$o/g if $o ne "/";
|
|
|
|
$src =~ s/\//$o/g if $o ne "/";
|
|
|
|
|
|
|
|
@s=split(/\s+/,$src);
|
|
|
|
@t=split(/\s+/,$target);
|
|
|
|
|
|
|
|
for ($i=0; $i<=$#s; $i++)
|
|
|
|
{
|
|
|
|
$ret.="$t[$i]: $s[$i]\n";
|
|
|
|
$ret.="\tgcc -E -DELF \$(SRC_D)$o$s[$i]|\$(AS) $afile$t[$i]\n\n";
|
|
|
|
}
|
|
|
|
return($ret);
|
|
|
|
}
|
|
|
|
|
|
|
|
1;
|