Make it possible to add env var assignments as Configure options
In other words, make the following possible:
./config CC=clang
or
./Configure CC=clang linux-x86_64
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4818)
diff --git a/Configure b/Configure
index 6f2aee3..9624af4 100755
--- a/Configure
+++ b/Configure
@@ -538,6 +538,14 @@
while (@argvcopy)
{
$_ = shift @argvcopy;
+
+ # Support env variable assignments among the options
+ if (m|^(\w+)=(.+)?$|)
+ {
+ $config{perlenv}->{$1} = $2;
+ next;
+ }
+
# VMS is a case insensitive environment, and depending on settings
# out of our control, we may receive options uppercased. Let's
# downcase at least the part before any equal sign.
@@ -2529,8 +2537,12 @@
{
my $name = shift;
- return $config{perlenv}->{$name} if exists $config{perlenv}->{$name};
- $config{perlenv}->{$name} = $ENV{$name};
+ # Note that if $ENV{$name} doesn't exist or is undefined,
+ # $config{perlenv}->{$name} will be created with the value
+ # undef. This is intentional.
+
+ $config{perlenv}->{$name} = $ENV{$name}
+ if ! exists $config{perlenv}->{$name};
return $config{perlenv}->{$name};
}