$objs .= " $ENV{$_}";
}
+my $noec2m = 0;
+
my @objlist = split / /, $objs;
foreach (@objlist) { $tarobjs{"$1.c"} = 1 if /([^\/]+).o$/};
$tarobjs{"ncbc_enc.c"} = 1;
+$tarobjs{"mem_clr.c"} = 1;
+$tarobjs{"ppccap.c"} = 1;
+$tarobjs{"sparcv9cap.c"} = 1;
+$tarobjs{"armcap.c"} = 1;
foreach (split / /, $ENV{LINKDIRS} ) { $cdirs{$_} = 1 };
$cdirs{perlasm} = 1;
+$noec2m = 1 if (exists $ENV{NOEC2M});
+
+if ($noec2m)
+ {
+ delete $tarobjs{"bn_gf2m.c"};
+ delete $tarobjs{"ec2_mult.c"};
+ delete $tarobjs{"ec2_smpl.c"};
+ }
+
+my %keep =
+ (
+ "Makefile.fips" => 1,
+ "Makefile.shared" => 1,
+ "README.FIPS" => 1,
+ "README.ECC" => 1,
+ "e_os.h" => 1,
+ "e_os2.h" => 1,
+ "Configure" => 1,
+ "config" => 1,
+ );
+
while (<STDIN>)
{
chomp;
- # Skip directories but leave top level files.
- next unless (/^(fips\/|crypto|util|test|include)/ || (!/\// && -f $_));
+ # Keep top level files in list
+ if (!/\// && -f $_)
+ {
+ next unless exists $keep{$_};
+ }
+ else
+ {
+ next unless (/^(fips\/|crypto|util|test|include|ms)/);
+ }
if (/^crypto\/([^\/]+)/)
{
# Skip unused directories under crypto/
next if -d "crypto/$1" && !exists $cdirs{$1};
+ # Skip GF2m assembly language perl scripts
+ next if $noec2m && /gf2m\.pl/;
+ next if /vpaes-\w*\.pl/;
# Keep assembly language dir, Makefile or certain extensions
- if (!/\/asm\// && !/\/Makefile$/ && !/\.(in|pl|h)$/)
+ if (!/\/asm\// && !/\/Makefile$/ && !/\.(in|pl|h|S)$/)
{
# If C source file must be on list.
next if !/(\w+\.c)$/ || !exists $tarobjs{$1};
}
}
+ if (/^test\//)
+ {
+ next unless /Makefile/ || /dummytest.c/;
+ }
print "$_\n";
}
exit 1;