summaryrefslogtreecommitdiffstats
path: root/Configure
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2015-10-22 17:09:14 +0200
committerRichard Levitte <levitte@openssl.org>2015-10-22 17:37:10 +0200
commit8b527be2db48064673640dda2d57edc6b362ae64 (patch)
treee765158bfce93a32de479c2f4c3653673b7051e4 /Configure
parent15db6a40d3569789329d3f6f84e47e0e0e8f9caa (diff)
Add an explicit list of options that can be disabled, enabled, ...
Configure has, so far, had no control at all of which 'no-' options it can be given. This means that, for example, someone could configure with something absurd like 'no-stack' and then watch the build crumble to dust... or file a bug report. This introduces some sanity into the possible choices. The added list comes from looking for the explicit ones used in Configure, and from grepping after OPENSSL_NO_ in all source files. Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure89
1 files changed, 89 insertions, 0 deletions
diff --git a/Configure b/Configure
index 9ff6e70dd8..d8ea689d70 100755
--- a/Configure
+++ b/Configure
@@ -796,6 +796,86 @@ my $default_ranlib;
my $perl;
my $fips=0;
+# Explicitelly known options that are possible to disable. They can
+# be regexps, and will be used like this: /^no-${option}$/
+# For developers: keep it sorted alphabetically
+
+my @disablables = (
+ "aes",
+ "asm",
+ "bf",
+ "camellia",
+ "capieng",
+ "cast",
+ "cmac",
+ "cms",
+ "comp",
+ "ct",
+ "deprecated",
+ "des",
+ "dgram",
+ "dh",
+ "dsa",
+ "dso",
+ "dtls1?",
+ "dynamic[-_]engine",
+ "ec",
+ "ec2m",
+ "ec_nistp_64_gcc_128",
+ "engine",
+ "err", # Really???
+ "gmp",
+ "gost",
+ "heartbeats",
+ "hmac",
+ "hw(-.+)?",
+ "idea",
+ "jpake",
+ "locking", # Really???
+ "md2",
+ "md4",
+ "md5",
+ "mdc2",
+ "md[-_]ghost94",
+ "nextprotoneg",
+ "ocb",
+ "ocsp",
+ "posix-io",
+ "psk",
+ "rc2",
+ "rc4",
+ "rc5",
+ "rdrand",
+ "rfc3779",
+ "rijndael", # Old AES name
+ "rmd160",
+ "rsa",
+ "scrypt",
+ "sct",
+ "sctp",
+ "seed",
+ "sha",
+ "shared",
+ "sock",
+ "srp",
+ "srtp",
+ "sse2",
+ "ssl",
+ "ssl3",
+ "ssl3-method",
+ "ssl-trace",
+ "static-engine",
+ "stdio",
+ "store",
+ "threads",
+ "tls",
+ "tls1",
+ "unit-test",
+ "whirlpool",
+ "zlib",
+ "zlib-dynamic",
+ );
+
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
my %disabled = ( # "what" => "comment" [or special keyword "experimental"]
@@ -878,6 +958,15 @@ PROCESS_ARGS:
s /^zlib$/enable-zlib/;
s /^zlib-dynamic$/enable-zlib-dynamic/;
+ if (/^(no|disable|enable|experimental)-(.+)$/)
+ {
+ my $word = $2;
+ if (!grep { $word =~ /^${_}$/ } @disablables)
+ {
+ warn "Unsupported option ${word}, ignored...\n";
+ next;
+ }
+ }
if (/^no-(.+)$/ || /^disable-(.+)$/)
{
if (!($disabled{$1} eq "experimental"))