"crypto/bf",
"crypto/cast",
"crypto/aes",
+"crypto/camellia",
+"crypto/seed",
+"crypto/modes",
+"crypto/cmac",
"crypto/bn",
"crypto/rsa",
"crypto/dsa",
"crypto/pem",
"crypto/x509",
"crypto/x509v3",
+"crypto/cms",
"crypto/conf",
+"crypto/jpake",
"crypto/txt_db",
"crypto/pkcs7",
"crypto/pkcs12",
"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/ecdh",
+"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");
}
$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);
}
}
{
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;
+ }
}