diff options
author | Thomas Heller <theller@ctypes.org> | 2006-04-07 19:04:09 +0000 |
---|---|---|
committer | Thomas Heller <theller@ctypes.org> | 2006-04-07 19:04:09 +0000 |
commit | fafc370362aa14156234539596305a84dbee6311 (patch) | |
tree | 30e2e4f7c6e736db66e5eb560488d9ee9aa1038d /setup.py | |
parent | db64e9ac4e34cc43c4a3dc75aa3bf36a8552f999 (diff) | |
download | cpython-fafc370362aa14156234539596305a84dbee6311.tar.gz |
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
This avoids configuring it when it is not build by setup.py.
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -180,6 +180,9 @@ class PyBuildExt(build_ext): def build_extension(self, ext): + if ext.name == '_ctypes': + self.configure_ctypes(ext) + try: build_ext.build_extension(self, ext) except (CCompilerError, DistutilsError), why: @@ -1264,7 +1267,7 @@ class PyBuildExt(build_ext): # *** Uncomment these for TOGL extension only: # -lGL -lGLU -lXext -lXmu \ - def detect_ctypes(self): + def configure_ctypes(self, ext): (srcdir,) = sysconfig.get_config_vars('srcdir') ffi_builddir = os.path.join(self.build_temp, 'libffi') ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules', @@ -1296,12 +1299,20 @@ class PyBuildExt(build_ext): include_dirs = [os.path.join(ffi_builddir, 'include'), ffi_builddir, ffi_srcdir] extra_compile_args = fficonfig['ffi_cflags'].split() + + ext.sources.extend(fficonfig['ffi_sources']) + ext.include_dirs.extend(include_dirs) + ext.extra_compile_args.extend(extra_compile_args) + + def detect_ctypes(self): + include_dirs = [] + extra_compile_args = [] sources = ['_ctypes/_ctypes.c', '_ctypes/callbacks.c', '_ctypes/callproc.c', '_ctypes/stgdict.c', '_ctypes/cfield.c', - '_ctypes/malloc_closure.c'] + fficonfig['ffi_sources'] + '_ctypes/malloc_closure.c'] depends = ['_ctypes/ctypes.h'] if sys.platform == 'darwin': |