Commit 79e5eae6 authored by Richard Levitte's avatar Richard Levitte Committed by Richard Levitte
Browse files

Configure: Reorganise the checking of disabled options



The way we figured out what options are crypto algorithms and what are
something other was somewhat sketchy.  This change bases the
distinction on available sdirs instead.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
(cherry picked from commit 3e2dd30d)
parent b7d2480c
Loading
Loading
Loading
Loading
+18 −17
Original line number Original line Diff line number Diff line
@@ -846,33 +846,34 @@ foreach (sort (keys %disabled))
		@{$config{dirs}} = grep !/^engines$/, @{$config{dirs}};
		@{$config{dirs}} = grep !/^engines$/, @{$config{dirs}};
		@{$config{sdirs}} = grep !/^engine$/, @{$config{sdirs}};
		@{$config{sdirs}} = grep !/^engine$/, @{$config{sdirs}};
		push @{$config{openssl_other_defines}}, "OPENSSL_NO_ENGINE";
		push @{$config{openssl_other_defines}}, "OPENSSL_NO_ENGINE";
		print " OPENSSL_NO_ENGINE (skip engines)";
		}
		}
	else
	else
		{
		{
		my ($ALGO, $algo);
		my ($WHAT, $what);
		($ALGO = $algo = $_) =~ tr/[\-a-z]/[_A-Z]/;


		if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/ || /^async$/
		($WHAT = $what = $_) =~ tr/[\-a-z]/[_A-Z]/;
				|| /^autoalginit/ || /^autoerrinit/)

		# Fix up C macro end names
		$WHAT = "RMD160" if $what eq "ripemd";

		# fix-up crypto/directory name(s)
		$what = "ripemd" if $what eq "rmd160";
		$what = "whrlpool" if $what eq "whirlpool";

		if (grep { $_ eq $what } @{$config{sdirs}})
			{
			{
			push @{$config{openssl_other_defines}}, "OPENSSL_NO_$ALGO";
			push @{$config{openssl_algorithm_defines}}, "OPENSSL_NO_$WHAT";
			print " OPENSSL_NO_$ALGO";
			@{$config{sdirs}} = grep { $_ ne $what} @{$config{sdirs}};


			if (/^err$/)	{ push @user_defines, "OPENSSL_NO_ERR"; }
			print " OPENSSL_NO_$WHAT (skip dir)";
			}
			}
		else
		else
			{
			{
			($ALGO,$algo) = ("RMD160","rmd160") if ($algo eq "ripemd");
			push @{$config{openssl_other_defines}}, "OPENSSL_NO_$WHAT";
			print " OPENSSL_NO_$WHAT";


			push @{$config{openssl_algorithm_defines}}, "OPENSSL_NO_$ALGO";
			if (/^err$/)	{ push @user_defines, "OPENSSL_NO_ERR"; }
			print " OPENSSL_NO_$ALGO";

			# fix-up crypto/directory name(s)
			$algo="whrlpool" if $algo eq "whirlpool";
			$algo="ripemd" if $algo eq "rmd160";
			@{$config{sdirs}} = grep { $_ ne $algo} @{$config{sdirs}};

			print " (skip dir)";
			}
			}
		}
		}