diff options
author | Spencer Jackson <spencer.jackson@mongodb.com> | 2018-03-06 18:33:23 -0500 |
---|---|---|
committer | Spencer Jackson <spencer.jackson@mongodb.com> | 2018-04-16 12:05:26 -0400 |
commit | f3da8451501fc1d8e960df841babbcf165a0ba03 (patch) | |
tree | f26e15b2d053ef355150d4c1361232e2ecc4d201 /SConstruct | |
parent | e6ca5783790d696c0e13573728cf902081659043 (diff) | |
download | mongo-f3da8451501fc1d8e960df841babbcf165a0ba03.tar.gz |
SERVER-34390: Static link OpenSSL on OS X
(cherry picked from commit b94082c75466269096084c1385aa9c30af05161f)
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 28 |
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> |