summaryrefslogtreecommitdiffstats
path: root/Configure
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2000-04-06 07:09:45 +0000
committerGeoff Thorpe <geoff@openssl.org>2000-04-06 07:09:45 +0000
commitbc2aadad842d16d6bdc1bfa2467b60bd7825f371 (patch)
treee9e96ad5d0b7d6498b14dec34c1c9cea99518076 /Configure
parent6ef4d9d512a8d9ff85c11f0474b97e9e95ea0f94 (diff)
This helps make the DSO stuff more portable;
* "no-dso" option available in Configure so that all DSO methods will return NULL, overriding any support the platform might otherwise have built. * dlfcn_no_h config string now available rather than just dlfcn. This is for platforms that have dlfcn.h functions but do not have (or need) the dlfcn.h header file.
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure35
1 files changed, 27 insertions, 8 deletions
diff --git a/Configure b/Configure
index 436af8dad7..112a48836d 100755
--- a/Configure
+++ b/Configure
@@ -10,7 +10,7 @@ use strict;
# see INSTALL for instructions.
-my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [rsaref] [no-threads] [no-asm] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] os/compiler[:flags]\n";
+my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [rsaref] [no-threads] [no-asm] [no-dso] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] os/compiler[:flags]\n";
# Options:
#
@@ -28,6 +28,8 @@ my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-
# multithreaded applications (default is "threads" if we
# know how to do it)
# no-asm do not use assembler
+# no-dso do not compile in any native shared-library methods. This
+# will ensure that all methods just return NULL.
# 386 generate 80386 code
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
# -<xxx> +<xxx> compiler options are passed through
@@ -384,6 +386,7 @@ my $install_prefix="";
my $no_threads=0;
my $threads=0;
my $no_asm=0;
+my $no_dso=0;
my @skip=();
my $Makefile="Makefile.ssl";
my $des_locl="crypto/des/des_locl.h";
@@ -431,6 +434,8 @@ foreach (@ARGV)
$flags .= "-DNO_ASM ";
$openssl_other_defines .= "#define NO_ASM\n";
}
+ elsif (/^no-dso$/)
+ { $no_dso=1; }
elsif (/^no-threads$/)
{ $no_threads=1; }
elsif (/^threads$/)
@@ -543,14 +548,28 @@ print "IsWindows=$IsWindows\n";
split(/\s*:\s*/,$table{$target} . ":" x 20 , -1);
$cflags="$flags$cflags" if ($flags ne "");
-# For now the translation from dso_scheme to cflags is trivial. This may well
-# "grow", eg. we could add "dlfcn_no_h" to do what "dlfcn" does and have the
-# latter additionally define HAVE_DLFCN_H (some systems don't have dlfcn.h and
-# it's not needed).
-if ($dso_scheme ne "") {
+# The DSO code currently always implements all functions so that no
+# applications will have to worry about that from a compilation point
+# of view. However, the "method"s may return zero unless that platform
+# has support compiled in for them. Currently each method is enabled
+# by a define "DSO_<name>" ... we translate the "dso_scheme" config
+# string entry into using the following logic;
+if (!$no_dso && $dso_scheme ne "")
+ {
$dso_scheme =~ tr/[a-z]/[A-Z]/;
- $cflags = "-DDSO_$dso_scheme $cflags";
-}
+ if ($dso_scheme eq "DLFCN")
+ {
+ $cflags = "-DDSO_DLFCN -DHAVE_DLFCN_H $cflags";
+ }
+ elsif ($dso_scheme eq "DLFCN_NO_H")
+ {
+ $cflags = "-DDSO_DLFCN $cflags";
+ }
+ else
+ {
+ $cflags = "-DDSO_$dso_scheme $cflags";
+ }
+ }
my $thread_cflags;
my $thread_defines;