Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Add makefile vars
  • Loading branch information
tiran committed Nov 10, 2021
commit 1ba9652b887198b8246b37cc3d85afc68117ba45
4 changes: 4 additions & 0 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,10 @@ RUNSHARED= @RUNSHARED@
ENSUREPIP= @ENSUREPIP@

# OpenSSL options for setup.py so sysconfig can pick up AC_SUBST() vars.
MODULE__SSL_CFLAGS=@OPENSSL_INCLUDES@
MODULE__SSL_LDFLAGS=@OPENSSL_LIBS@ @OPENSSL_LDFLAGS@
MODULE__HASHLIB_CFLAGS=@OPENSSL_INCLUDES@
MODULE__HASHLIB_LDFLAGS=@OPENSSL_LIBS@ @OPENSSL_LDFLAGS@
OPENSSL_INCLUDES=@OPENSSL_INCLUDES@
OPENSSL_LIBS=@OPENSSL_LIBS@
OPENSSL_LDFLAGS=@OPENSSL_LDFLAGS@
Expand Down
25 changes: 19 additions & 6 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import logging
import os
import re
import shlex
import sys
import sysconfig
import warnings
Expand Down Expand Up @@ -378,7 +379,9 @@ def __init__(self, dist):
if '-j' in os.environ.get('MAKEFLAGS', ''):
self.parallel = True

def add(self, ext):
def add(self, ext, *, update_flags=False):
if update_flags:
self.update_extension_flags(ext)
self.extensions.append(ext)

def set_srcdir(self):
Expand Down Expand Up @@ -426,6 +429,16 @@ def update_sources_depends(self):
# re-compile extensions if a header file has been changed
ext.depends.extend(headers)

def update_extension_flags(self, ext):
name = ext.name.upper()
cflags = sysconfig.get_config_var(f"MODULE_{name}_CFLAGS")
if cflags:
ext.extra_compile_args.extend(shlex.split(cflags))
ldflags = sysconfig.get_config_var(f"MODULE_{name}_LDFLAGS")
if ldflags:
ext.extra_link_args.extend(shlex.split(ldflags))
return ext

def handle_configured_extensions(self):
# The sysconfig variables built by makesetup that list the already
# built modules and the disabled modules as configured by the Setup
Expand Down Expand Up @@ -2452,9 +2465,9 @@ def split_var(name, sep):
runtime_library_dirs = [openssl_rpath]

openssl_extension_kwargs = dict(
include_dirs=openssl_includes,
library_dirs=openssl_libdirs,
libraries=openssl_libs,
# include_dirs=openssl_includes,
# library_dirs=openssl_libdirs,
# libraries=openssl_libs,
runtime_library_dirs=runtime_library_dirs,
)

Expand Down Expand Up @@ -2489,15 +2502,15 @@ def split_var(name, sep):
'_ssl/cert.c',
],
**openssl_extension_kwargs
)
), update_flags=True
)
self.add(
Extension(
'_hashlib',
['_hashopenssl.c'],
depends=['hashlib.h'],
**openssl_extension_kwargs,
)
), update_flags=True
)

def detect_hash_builtins(self):
Expand Down