Omit GF2m properly this time ;-)
[openssl.git] / util / fipsdist.pl
index f35f8da..5e511f7 100644 (file)
@@ -10,35 +10,70 @@ foreach (split / /, "FIPS_EX_OBJ AES_ENC BN_ASM DES_ENC SHA1_ASM_OBJ MODES_ASM_O
        $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;
 
 foreach (split / /, $ENV{LINKDIRS} ) { $cdirs{$_} = 1 };
 
 $cdirs{perlasm} = 1;
 
-foreach (keys %cdirs) { print STDERR "CDIR: $_\n";}
+$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,
+       "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/;
                # 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;