summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorSpencer Jackson <spencer.jackson@mongodb.com>2018-03-06 18:33:23 -0500
committerSpencer Jackson <spencer.jackson@mongodb.com>2018-04-10 18:52:31 -0400
commitb94082c75466269096084c1385aa9c30af05161f (patch)
treeeebd4537be2f4f2e02eae869551d73e75a060a61 /SConstruct
parent4e1fff07b0d76337232abc682fbbe13c546e5c13 (diff)
downloadmongo-b94082c75466269096084c1385aa9c30af05161f.tar.gz
SERVER-34390: Static link OpenSSL on OS X
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct28
1 files changed, 19 insertions, 9 deletions
diff --git a/SConstruct b/SConstruct
index f012e1a27d9..c0890782982 100644
--- a/SConstruct
+++ b/SConstruct
@@ -2753,9 +2753,11 @@ def doConfigure(myenv):
def checkOpenSSL(conf):
sslLibName = "ssl"
cryptoLibName = "crypto"
+ sslLinkDependencies = ["crypto", "dl"]
if conf.env.TargetOSIs('windows'):
sslLibName = "ssleay32"
cryptoLibName = "libeay32"
+ sslLinkDependencies = ["libeay32"]
# Add the SSL binaries to the zip file distribution
def addOpenSslLibraryToDistArchive(file_name):
@@ -2813,15 +2815,6 @@ def doConfigure(myenv):
pass
if not conf.CheckLibWithHeader(
- sslLibName,
- ["openssl/ssl.h"],
- "C",
- "SSL_version(NULL);",
- autoadd=True):
- maybeIssueDarwinSSLAdvice(conf.env)
- conf.env.ConfError("Couldn't find OpenSSL ssl.h header and library")
-
- if not conf.CheckLibWithHeader(
cryptoLibName,
["openssl/crypto.h"],
"C",
@@ -2830,6 +2823,23 @@ def doConfigure(myenv):
maybeIssueDarwinSSLAdvice(conf.env)
conf.env.ConfError("Couldn't find OpenSSL crypto.h header and library")
+ def CheckLibSSL(context):
+ res = SCons.Conftest.CheckLib(context,
+ libs=[sslLibName],
+ extra_libs=sslLinkDependencies,
+ header='#include "openssl/ssl.h"',
+ language="C",
+ call="SSL_version(NULL);",
+ autoadd=True)
+ context.did_show_result = 1
+ return not res
+
+ conf.AddTest("CheckLibSSL", CheckLibSSL)
+
+ if not conf.CheckLibSSL():
+ maybeIssueDarwinSSLAdvice(conf.env)
+ conf.env.ConfError("Couldn't find OpenSSL ssl.h header and library")
+
def CheckLinkSSL(context):
test_body = """
#include <openssl/err.h>