Get OPENSSL_FIPSSYMS from environment in fipsas.pl, include ppccap.c and .S
[openssl.git] / util / mkfiles.pl
index cb537c347fca6362f9aef0e1aa6ef686e5acfaf5..94ab502f8d0c44f9aacf38fae1881711c03d6f70 100755 (executable)
@@ -24,6 +24,10 @@ my @dirs = (
 "crypto/bf",
 "crypto/cast",
 "crypto/aes",
+"crypto/camellia",
+"crypto/seed",
+"crypto/modes",
+"crypto/cmac",
 "crypto/bn",
 "crypto/rsa",
 "crypto/dsa",
@@ -44,7 +48,9 @@ my @dirs = (
 "crypto/pem",
 "crypto/x509",
 "crypto/x509v3",
+"crypto/cms",
 "crypto/conf",
+"crypto/jpake",
 "crypto/txt_db",
 "crypto/pkcs7",
 "crypto/pkcs12",
@@ -53,17 +59,37 @@ my @dirs = (
 "crypto/ocsp",
 "crypto/ui",
 "crypto/krb5",
-"crypto/store",
+#"crypto/store",
 "crypto/pqueue",
 "crypto/whrlpool",
+"crypto/ts",
+"crypto/srp",
+"fips",
+"fips/aes",
+"fips/cmac",
+"fips/des",
+"fips/dsa",
+"fips/dh",
+"fips/ecdsa",
+"fips/hmac",
+"fips/rand",
+"fips/rsa",
+"fips/utl",
+"fips/sha",
 "ssl",
 "apps",
 "engines",
+"engines/ccgost",
 "test",
 "tools"
 );
 
+%top;
+
+my $fipscanisteronly = 0;
+
 foreach (@dirs) {
+       next if ($fipscanisteronly && !(-d $_));
        &files_dir ($_, "Makefile");
 }
 
@@ -106,8 +132,8 @@ while (<IN>)
                $o =~ s/\s+$//;
                $o =~ s/\s+/ /g;
 
-               $o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
-               $sym{$s}=$o;
+               $o =~ s/\$[({]([^)}]+)[)}]/$top{$1} or $sym{$1}/ge;
+               $sym{$s}=($top{$s} or $o);
                }
        }
 
@@ -117,7 +143,20 @@ foreach (sort keys %sym)
        {
        print "$_=$sym{$_}\n";
        }
+if ($dir eq "." && defined($sym{"BUILDENV"}))
+       {
+       foreach (split(' ',$sym{"BUILDENV"}))
+               {
+               /^(.+)=/;
+               $top{$1}=$sym{$1};
+               }
+       }
+
 print "RELATIVE_DIRECTORY=\n";
 
 close (IN);
+if ($dir eq "." && $sym{FIPSCANISTERONLY} eq "y")
+       {
+       $fipscanisteronly = 1;
+       }
 }