From eba43c157b1ed57bf95144f704d56c3296a6f637 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Fri, 7 Apr 2006 19:04:09 +0000 Subject: [PATCH] Configure Modules/_ctypes/libffi just before building the _ctypes extension. This avoids configuring it when it is not build by setup.py. --- setup.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index fb33bba8a77..5a19383bd0a 100644 --- a/setup.py +++ b/setup.py @@ -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':