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-16 12:05:26 -0400
commitf3da8451501fc1d8e960df841babbcf165a0ba03 (patch)
treef26e15b2d053ef355150d4c1361232e2ecc4d201 /SConstruct
parente6ca5783790d696c0e13573728cf902081659043 (diff)
downloadmongo-f3da8451501fc1d8e960df841babbcf165a0ba03.tar.gz
SERVER-34390: Static link OpenSSL on OS X
(cherry picked from commit b94082c75466269096084c1385aa9c30af05161f)
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct28
1 files changed, 19 insertions, 9 deletions
diff --git a/SConstruct b/SConstruct
index f949f654756..513213bc11f 100644
--- a/SConstruct
+++ b/SConstruct
@@ -2692,9 +2692,11 @@ def doConfigure(myenv):
if has_option( "ssl" ):
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
files = ['ssleay32.dll', 'libeay32.dll']
@@ -2740,15 +2742,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",
@@ -2757,6 +2750,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>