config, Configure: move the check of removed crypto/ sub-systems
authorRichard Levitte <levitte@openssl.org>
Mon, 2 Mar 2020 09:50:24 +0000 (10:50 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 4 Mar 2020 16:12:52 +0000 (17:12 +0100)
The 'config' script checked for a bunch of crypto/ sub-system
directories, and added 'no-' options if they weren't there.

We move it to 'Configure' in an effort to simplify 'config' for
further work.

Note: this is pretty much a historical thing.  In modern OpenSSL, it's
much simpler to edit the SUBDIRS statement in crypto/build.info.
However, it's been claimed the there are those who still remove some
of these sub-system sources.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11217)

Configure
config

index 19b57d90b8f4c35c7475d1e37f1079664ec8bab2..64e30fe2a05462a48bcc9e6645659c56fe97cc8f 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -265,6 +265,19 @@ if (grep /^reconf(igure)?$/, @argvcopy) {
 
 $config{perlargv} = [ @argvcopy ];
 
+# Historical: if known directories in crypto/ have been removed, it means
+# that those sub-systems are disabled.
+# (the other option would be to removed them from the SUBDIRS statement in
+# crypto/build.info)
+# We reverse the input list for cosmetic purely reasons, to compensate that
+# 'unshift' adds at the front of the list (i.e. in reverse input order).
+foreach ( reverse sort( 'aes', 'aria', 'bf', 'camellia', 'cast', 'des', 'dh',
+                        'dsa', 'ec', 'hmac', 'idea', 'md2', 'md5', 'mdc2',
+                        'rc2', 'rc4', 'rc5', 'ripemd', 'rsa', 'seed', 'sha',
+                        'sm2', 'sm3', 'sm4') ) {
+    unshift @argvcopy, "no-$_" if ! -d catdir($srcdir, 'crypto', $_);
+}
+
 # Collect version numbers
 my %version = ();
 
diff --git a/config b/config
index e39481ca2a5451db79bb791c8e1df1f871420128..7dfea228020057a7c2f6c255cf6e79ff2f783cae 100755 (executable)
--- a/config
+++ b/config
@@ -847,14 +847,6 @@ case "$GUESSOS" in
   i386-*) options="$options 386" ;;
 esac
 
-for i in aes aria bf camellia cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa seed sha sm2 sm3 sm4
-do
-  if [ ! -d $THERE/crypto/$i ]
-  then
-    options="$options no-$i"
-  fi
-done
-
 if [ -z "$OUT" ]; then
   OUT="$CC"
 fi