diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2011-02-21 19:36:55 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2011-02-21 19:36:55 +0000 |
commit | 94a0a96cd8db717381f0c57af4782f385029fa89 (patch) | |
tree | b61bdd5b9b8934b65e5eebfc9d3e0c260d2d4bff /util/fipsdist.pl | |
parent | 83dfcd727b011ef16d20198f829c80b03cd9c309 (diff) |
Initial perl script to filter out unneeded files for a fips tarball.
Diffstat (limited to 'util/fipsdist.pl')
-rw-r--r-- | util/fipsdist.pl | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/util/fipsdist.pl b/util/fipsdist.pl new file mode 100644 index 0000000000..86ceab02ab --- /dev/null +++ b/util/fipsdist.pl @@ -0,0 +1,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; |