blob: 86ceab02abf0c8ba82a6b4465454e8c46c1c079b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# FIPS distribution filter.
# Takes tarball listing and removes unnecessary files and directories.
#
my $objs = "";
foreach (split / /, "FIPS_EX_OBJ AES_ENC BN_ASM DES_ENC SHA1_ASM_OBJ MODES_ASM_OBJ")
{
$objs .= " $ENV{$_}";
}
my @objlist = split / /, $objs;
foreach (@objlist) { $tarobjs{"$1.c"} = 1 if /([^\/]+).o$/};
$tarobjs{"ncbc_enc.c"} = 1;
foreach (split / /, $ENV{LINKDIRS} ) { $cdirs{$_} = 1 };
$cdirs{perlasm} = 1;
foreach (keys %cdirs) { print STDERR "CDIR: $_\n";}
while (<STDIN>)
{
chomp;
# Skip directories but leave top level files.
next unless (/^(fips\/|crypto|util|test|include)/ || (!/\// && -f $_));
if (/^crypto\/([^\/]+)/)
{
# Skip unused directories under crypto/
next if -d "crypto/$1" && !exists $cdirs{$1};
# Keep assembly language dir, Makefile or certain extensions
if (!/\/asm\// && !/\/Makefile$/ && && !/\.(in|pl|h)$/)
{
# If C source file must be on list.
next if !/(\w+\.c)$/ || !exists $tarobjs{$1};
}
}
print "$_\n";
}
exit 1;
|