2 # FIPS distribution filter.
3 # Takes tarball listing and removes unnecessary files and directories.
8 foreach (split / /, "FIPS_EX_OBJ AES_ENC BN_ASM DES_ENC SHA1_ASM_OBJ MODES_ASM_OBJ")
16 my @objlist = split / /, $objs;
18 foreach (@objlist) { $tarobjs{"$1.c"} = 1 if /([^\/]+).o$/};
20 $tarobjs{"ncbc_enc.c"} = 1;
21 $tarobjs{"mem_clr.c"} = 1;
22 $tarobjs{"ppccap.c"} = 1;
23 $tarobjs{"sparcv9.c"} = 1;
25 foreach (split / /, $ENV{LINKDIRS} ) { $cdirs{$_} = 1 };
29 $noec2m = 1 if (exists $ENV{NOEC2M});
33 delete $tarobjs{"bn_gf2m.c"};
34 delete $tarobjs{"ec2_mult.c"};
35 delete $tarobjs{"ec2_smpl.c"};
41 "Makefile.shared" => 1,
53 # Keep top level files in list
56 next unless exists $keep{$_};
60 next unless (/^(fips\/|crypto|util|test|include|ms)/);
62 if (/^crypto\/([^\/]+)/)
64 # Skip unused directories under crypto/
65 next if -d "crypto/$1" && !exists $cdirs{$1};
66 # Skip GF2m assembly language perl scripts
67 next if $noec2m && /gf2m\.pl/;
68 # Keep assembly language dir, Makefile or certain extensions
69 if (!/\/asm\// && !/\/Makefile$/ && !/\.(in|pl|h|S)$/)
71 # If C source file must be on list.
72 next if !/(\w+\.c)$/ || !exists $tarobjs{$1};
77 next unless /Makefile/ || /dummytest.c/;