]>
Commit | Line | Data |
---|---|---|
94a0a96c DSH |
1 | |
2 | # FIPS distribution filter. | |
3 | # Takes tarball listing and removes unnecessary files and directories. | |
4 | # | |
5 | ||
6 | ||
7 | my $objs = ""; | |
8 | foreach (split / /, "FIPS_EX_OBJ AES_ENC BN_ASM DES_ENC SHA1_ASM_OBJ MODES_ASM_OBJ") | |
9 | { | |
10 | $objs .= " $ENV{$_}"; | |
11 | } | |
12 | ||
ed1afd32 DSH |
13 | my $noec2m = 0; |
14 | ||
94a0a96c DSH |
15 | |
16 | my @objlist = split / /, $objs; | |
17 | ||
18 | foreach (@objlist) { $tarobjs{"$1.c"} = 1 if /([^\/]+).o$/}; | |
19 | ||
20 | $tarobjs{"ncbc_enc.c"} = 1; | |
1ccc003b | 21 | $tarobjs{"mem_clr.c"} = 1; |
524289ba | 22 | $tarobjs{"ppccap.c"} = 1; |
dbfa2369 | 23 | $tarobjs{"sparcv9cap.c"} = 1; |
513e28c0 | 24 | $tarobjs{"armcap.c"} = 1; |
94a0a96c DSH |
25 | |
26 | foreach (split / /, $ENV{LINKDIRS} ) { $cdirs{$_} = 1 }; | |
27 | ||
28 | $cdirs{perlasm} = 1; | |
29 | ||
ed1afd32 DSH |
30 | $noec2m = 1 if (exists $ENV{NOEC2M}); |
31 | ||
32 | if ($noec2m) | |
45826265 DSH |
33 | { |
34 | delete $tarobjs{"bn_gf2m.c"}; | |
35 | delete $tarobjs{"ec2_mult.c"}; | |
36 | delete $tarobjs{"ec2_smpl.c"}; | |
37 | } | |
38 | ||
c105c96b DSH |
39 | my %keep = |
40 | ( | |
41 | "Makefile.fips" => 1, | |
42 | "Makefile.shared" => 1, | |
43 | "README.FIPS" => 1, | |
5024b79f | 44 | "README.ECC" => 1, |
c105c96b DSH |
45 | "e_os.h" => 1, |
46 | "e_os2.h" => 1, | |
47 | "Configure" => 1, | |
48 | "config" => 1, | |
49 | ); | |
50 | ||
94a0a96c DSH |
51 | while (<STDIN>) |
52 | { | |
53 | chomp; | |
c105c96b DSH |
54 | # Keep top level files in list |
55 | if (!/\// && -f $_) | |
56 | { | |
57 | next unless exists $keep{$_}; | |
58 | } | |
59 | else | |
60 | { | |
61 | next unless (/^(fips\/|crypto|util|test|include|ms)/); | |
62 | } | |
94a0a96c DSH |
63 | if (/^crypto\/([^\/]+)/) |
64 | { | |
65 | # Skip unused directories under crypto/ | |
66 | next if -d "crypto/$1" && !exists $cdirs{$1}; | |
ed1afd32 DSH |
67 | # Skip GF2m assembly language perl scripts |
68 | next if $noec2m && /gf2m\.pl/; | |
b63698b7 | 69 | next if /vpaes-\w*\.pl/; |
94a0a96c | 70 | # Keep assembly language dir, Makefile or certain extensions |
524289ba | 71 | if (!/\/asm\// && !/\/Makefile$/ && !/\.(in|pl|h|S)$/) |
94a0a96c DSH |
72 | { |
73 | # If C source file must be on list. | |
74 | next if !/(\w+\.c)$/ || !exists $tarobjs{$1}; | |
75 | } | |
76 | } | |
c105c96b DSH |
77 | if (/^test\//) |
78 | { | |
79 | next unless /Makefile/ || /dummytest.c/; | |
80 | } | |
94a0a96c DSH |
81 | print "$_\n"; |
82 | } | |
83 | exit 1; |