}
unless ($disabled{asm}) {
- if ($target{sha1_asm_src}) {
- push @{$config{lib_defines}}, "SHA1_ASM" if ($target{sha1_asm_src} =~ /sx86/ || $target{sha1_asm_src} =~ /sha1/);
- push @{$config{lib_defines}}, "SHA256_ASM" if ($target{sha1_asm_src} =~ /sha256/);
- push @{$config{lib_defines}}, "SHA512_ASM" if ($target{sha1_asm_src} =~ /sha512/);
- }
- if ($target{keccak1600_asm_src} ne $table{DEFAULTS}->{keccak1600_asm_src}) {
- push @{$config{lib_defines}}, "KECCAK1600_ASM";
- }
- if ($target{rc4_asm_src} ne $table{DEFAULTS}->{rc4_asm_src}) {
- push @{$config{lib_defines}}, "RC4_ASM";
- }
- if ($target{md5_asm_src}) {
- push @{$config{lib_defines}}, "MD5_ASM";
- }
- $target{cast_asm_src}=$table{DEFAULTS}->{cast_asm_src} unless $disabled{pic}; # CAST assembler is not PIC
- if ($target{rmd160_asm_src}) {
- push @{$config{lib_defines}}, "RMD160_ASM";
- }
- if ($target{aes_asm_src}) {
- if ($target{aes_asm_src} =~ m/\baes-/) {
- push @{$config{lib_defines}}, "AES_ASM";
- push @{$config{module_defines}}, "AES_ASM";
- }
- # aes-ctr.fake is not a real file, only indication that assembler
- # module implements AES_ctr32_encrypt...
- if ($target{aes_asm_src} =~ s/\s*aes-ctr\.fake//) {
- push @{$config{lib_defines}}, "AES_CTR_ASM";
- push @{$config{module_defines}}, "AES_CTR_ASM";
- }
- # aes-xts.fake indicates presence of AES_xts_[en|de]crypt...
- if ($target{aes_asm_src} =~ s/\s*aes-xts\.fake//) {
- push @{$config{lib_defines}}, "AES_XTS_ASM";
- push @{$config{module_defines}}, "AES_XTS_ASM";
- }
- $target{aes_asm_src} =~ s/\s*(vpaes|aesni)-x86\.s//g if ($disabled{sse2});
- if ($target{aes_asm_src} =~ m/vpaes/) {
- push @{$config{lib_defines}}, "VPAES_ASM";
- push @{$config{module_defines}}, "VPAES_ASM";
- }
- if ($target{aes_asm_src} =~ m/bsaes/) {
- push @{$config{lib_defines}}, "BSAES_ASM";
- push @{$config{module_defines}}, "BSAES_ASM";
- }
- }
- if ($target{wp_asm_src} =~ /mmx/) {
- if ($config{processor} eq "386") {
- $target{wp_asm_src}=$table{DEFAULTS}->{wp_asm_src};
- } elsif (!$disabled{"whirlpool"}) {
- push @{$config{lib_defines}}, "WHIRLPOOL_ASM";
- }
- }
- if ($target{modes_asm_src} =~ /ghash-/) {
- push @{$config{lib_defines}}, "GHASH_ASM";
- }
- if ($target{padlock_asm_src} ne $table{DEFAULTS}->{padlock_asm_src}) {
- push @{$config{dso_defines}}, "PADLOCK_ASM";
- }
- if ($target{poly1305_asm_src} ne "") {
- push @{$config{lib_defines}}, "POLY1305_ASM";
- }
}
my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC});
# Deal with bn_ops ###################################################
$config{bn_ll} =0;
-$config{export_var_as_fn} =0;
my $def_int="unsigned int";
$config{rc4_int} =$def_int;
($config{b64l},$config{b64},$config{b32})=(0,0,1);
my $count = 0;
foreach (sort split(/\s+/,$target{bn_ops})) {
$count++ if /SIXTY_FOUR_BIT|SIXTY_FOUR_BIT_LONG|THIRTY_TWO_BIT/;
- $config{export_var_as_fn}=1 if $_ eq 'EXPORT_VAR_AS_FN';
$config{bn_ll}=1 if $_ eq 'BN_LLONG';
$config{rc4_int}="unsigned char" if $_ eq 'RC4_CHAR';
($config{b64l},$config{b64},$config{b32})
# Thus, whenever there's mention of a returned value, it's about that
# intended value.
-# Helper function to implement conditional inheritance depending on the
-# value of $disabled{asm}. Used in inherit_from values as follows:
-#
-# inherit_from => [ "template", asm("asm_tmpl") ]
-#
-sub asm {
- my @x = @_;
- sub {
- $disabled{asm} ? () : @x;
- }
-}
-
# Helper function to implement conditional value variants, with a default
# plus additional values based on the value of $config{build_type}.
# Arguments are given in hash table form:
"includes",
"cc",
"cflags",
- "unistd",
"ld",
"lflags",
"loutflag",
"ex_libs",
"bn_ops",
- "aes_asm_src",
- "bf_asm_src",
- "md5_asm_src",
- "cast_asm_src",
- "sha1_asm_src",
- "rc4_asm_src",
- "rmd160_asm_src",
- "rc5_asm_src",
- "wp_asm_src",
- "cmll_asm_src",
- "modes_asm_src",
- "padlock_asm_src",
- "chacha_asm_src",
"poly1035_asm_src",
"thread_scheme",
"perlasm_scheme",