summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xConfigure47
-rw-r--r--Makefile.in3
-rw-r--r--engines/Makefile.in2
-rw-r--r--engines/build.info2
-rwxr-xr-xutil/mk1mf.pl6
5 files changed, 36 insertions, 24 deletions
diff --git a/Configure b/Configure
index e8786b020a..1cb5ace1af 100755
--- a/Configure
+++ b/Configure
@@ -261,7 +261,7 @@ my @disablables = (
"dsa",
"dso",
"dtls",
- "dynamic[-_]engine",
+ "dynamic-engine",
"ec",
"ec2m",
"ecdh",
@@ -335,6 +335,7 @@ my %disabled = ( # "what" => "comment"
"sctp" => "default",
"shared" => "default",
"ssl-trace" => "default",
+ "static-engine" => "default",
"unit-test" => "default",
"zlib" => "default",
"crypto-mdebug" => "default",
@@ -380,6 +381,9 @@ my @disable_cascades = (
"tlsext" => [ "srp", "heartbeats" ],
"crypto-mdebug" => [ "crypto-mdebug-backtrace" ],
+
+ # Without DSO, we can't load dynamic engines, so don't build them dynamic
+ "dso" => [ "dynamic-engine" ],
);
# Avoid protocol support holes. Also disable all versions below N, if version
@@ -544,6 +548,14 @@ foreach (@argvcopy)
$disabled{$proto} = "option(tls)";
}
}
+ elsif ($1 eq "static-engine")
+ {
+ $disabled{"static-engine"} = "option";
+ }
+ elsif ($1 eq "dynamic-engine")
+ {
+ delete $disabled{"static-engine"};
+ }
else
{
$disabled{$1} = "option";
@@ -551,6 +563,14 @@ foreach (@argvcopy)
}
elsif (/^enable-(.+)$/)
{
+ if ($1 eq "static-engine")
+ {
+ delete $disabled{"static-engine"};
+ }
+ elsif ($1 eq "dynamic-engine")
+ {
+ $disabled{"static-engine"} = "option";
+ }
my $algo = $1;
delete $disabled{$algo};
@@ -984,20 +1004,13 @@ if ($target{shared_target} eq "")
$config{no_shared} = 1;
}
-if ($builder ne "mk1mf")
- {
- # add {no-}static-engine to options to allow mkdef.pl to work without extra arguments
- if ($config{no_shared})
- {
- push @{$config{openssl_other_defines}}, "OPENSSL_NO_DYNAMIC_ENGINE";
- $config{options}.=" static-engine";
- }
- else
- {
- push @{$config{openssl_other_defines}}, "OPENSSL_NO_STATIC_ENGINE";
- $config{options}.=" no-static-engine";
- }
- }
+if ($disabled{"static-engine"}) {
+ push @{$config{defines}}, "OPENSSL_NO_STATIC_ENGINE";
+ $config{dynamic_engines} = 1;
+} else {
+ push @{$config{defines}}, "OPENSSL_NO_DYNAMIC_ENGINE";
+ $config{dynamic_engines} = 0;
+}
#
# Platform fix-ups
@@ -1371,8 +1384,8 @@ if ($builder eq "unified") {
$unified_info{libraries}->{$library} = 1;
}
- die <<"EOF" if $config{no_shared} && scalar @engines;
-ENGINES can only be used if configured with 'shared'.
+ die <<"EOF" if scalar @engines and !$config{dynamic_engines};
+ENGINES can only be used if configured with 'static-enginex'.
This is usually a fault in a build.info file.
EOF
foreach (@engines) {
diff --git a/Makefile.in b/Makefile.in
index c269a6d20a..9cca221cdd 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -210,6 +210,7 @@ SHARED_LDFLAG={- $target{shared_ldflag}
. ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$|
? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -}
SHARED_RCFLAG={- $target{shared_rcflag} -}
+DYNAMIC_ENGINES={- $config{dynamic_engines} -}
GENERAL= Makefile
BASENAME= openssl
@@ -254,7 +255,7 @@ BUILDENV= LC_ALL=C PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)'\
AS='$(CC)' ASFLAG='$(CFLAG) -c' \
AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
CROSS_COMPILE='$(CROSS_COMPILE)' \
- PERL='$(PERL)' \
+ PERL='$(PERL)' DYNAMIC_ENGINES='$(DYNAMIC_ENGINES)' \
SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)' \
DESTDIR='$(DESTDIR)' \
INSTALLTOP='$(INSTALLTOP)' OPENSSLDIR='$(OPENSSLDIR)' \
diff --git a/engines/Makefile.in b/engines/Makefile.in
index ea2ae2cd1b..d07cc0f841 100644
--- a/engines/Makefile.in
+++ b/engines/Makefile.in
@@ -57,7 +57,7 @@ top:
all: lib
lib: $(LIBOBJ) $(TESTLIBOBJ)
- @if [ -n "$(SHARED_LIBS)" ]; then \
+ @if [ "$(DYNAMIC_ENGINES)" = 1 ]; then \
set -e; \
for l in $(LIBNAMES) $(TESTLIBNAMES); do \
$(MAKE) -f ../Makefile.shared -e \
diff --git a/engines/build.info b/engines/build.info
index cae49862ed..98f0e58ee9 100644
--- a/engines/build.info
+++ b/engines/build.info
@@ -1,5 +1,5 @@
{- use File::Spec::Functions qw/:DEFAULT rel2abs/; -}
-IF[{- $config{no_shared} -}]
+IF[{- !$config{dynamic_engines} -}]
LIBS=../libcrypto
SOURCE[../libcrypto]=\
e_padlock.c {- $target{padlock_asm_src} -} \
diff --git a/util/mk1mf.pl b/util/mk1mf.pl
index 08999bfe72..3e8967c315 100755
--- a/util/mk1mf.pl
+++ b/util/mk1mf.pl
@@ -176,8 +176,6 @@ foreach (grep(!/^$/, split(/ /, $OPTIONS)))
print STDERR "unknown option - $_\n" if !&read_options;
}
-$no_static_engine = 0 if (!$shlib);
-
$no_mdc2=1 if ($no_des);
$no_ssl3=1 if ($no_md5);
@@ -1463,11 +1461,11 @@ sub read_options
{
$zlib_opt = 2;
}
- elsif (/^no-static-engine/)
+ elsif (/^no-static-engine/ or /^enable-dynamic-engine/)
{
$no_static_engine = 1;
}
- elsif (/^enable-static-engine/)
+ elsif (/^no-dynamic-engine/ or /^enable-static-engine/)
{
$no_static_engine = 0;
}