aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-29 15:47:53 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-29 15:47:53 -0500
commit1055431497ded70c1ef766ea7e543e6c4bc4f0da (patch)
treed83b54863789482eedc147eb42147486547d7f0c /src
parentb2ecff2447e06c9cd5747228cb5bbf9d44bbcdfe (diff)
downloadcryptography-1055431497ded70c1ef766ea7e543e6c4bc4f0da.tar.gz
cryptography-1055431497ded70c1ef766ea7e543e6c4bc4f0da.tar.bz2
cryptography-1055431497ded70c1ef766ea7e543e6c4bc4f0da.zip
add support for static linking of the openssl backend on OS X
Diffstat (limited to 'src')
-rw-r--r--src/_cffi_src/build_openssl.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/_cffi_src/build_openssl.py b/src/_cffi_src/build_openssl.py
index 6a5bf2da..bd8cf73e 100644
--- a/src/_cffi_src/build_openssl.py
+++ b/src/_cffi_src/build_openssl.py
@@ -4,6 +4,7 @@
from __future__ import absolute_import, division, print_function
+import os
import sys
from _cffi_src.utils import build_ffi_for_binding, extra_link_args
@@ -11,15 +12,27 @@ from _cffi_src.utils import build_ffi_for_binding, extra_link_args
def _get_openssl_libraries(platform):
# OpenSSL goes by a different library name on different operating systems.
- if platform != "win32":
+ if platform == "darwin":
+ return _osx_libraries(
+ os.environ.get("CRYPTOGRAPHY_BUILD_STATIC", None)
+ )
+ elif platform == "win32":
+ return ["libeay32", "ssleay32", "advapi32",
+ "crypt32", "gdi32", "user32", "ws2_32"]
+ else:
# In some circumstances, the order in which these libs are
# specified on the linker command-line is significant;
# libssl must come before libcrypto
# (http://marc.info/?l=openssl-users&m=135361825921871)
return ["ssl", "crypto"]
+
+
+def _osx_libraries(build_static):
+ # For building statically we don't want to pass the -lssl or -lcrypto flags
+ if build_static == "1":
+ return []
else:
- return ["libeay32", "ssleay32", "advapi32",
- "crypt32", "gdi32", "user32", "ws2_32"]
+ return ["ssl", "crypto"]
_OSX_PRE_INCLUDE = """