diff options
author | Christian Heimes <christian@cheimes.de> | 2008-01-25 15:52:11 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2008-01-25 15:52:11 (GMT) |
commit | 8608d91e07868f14f71be9784149f813ef1b0a74 (patch) | |
tree | 1b8ef51dc4edfbb36ffbe2c8b9bd32072cd622fd | |
parent | 543cabc84290972872f596c5c5a6660ad8aade15 (diff) | |
download | cpython-8608d91e07868f14f71be9784149f813ef1b0a74.zip cpython-8608d91e07868f14f71be9784149f813ef1b0a74.tar.gz cpython-8608d91e07868f14f71be9784149f813ef1b0a74.tar.bz2 |
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
It forces a rebuild of all extensions when a header files has been modified
-rw-r--r-- | setup.py | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -4,6 +4,7 @@ __version__ = "$Revision$" import sys, os, imp, re, optparse +from glob import glob from distutils import log from distutils import sysconfig @@ -142,12 +143,20 @@ class PyBuildExt(build_ext): self.distribution.scripts = [os.path.join(srcdir, filename) for filename in self.distribution.scripts] + # Python header files + headers = glob("Include/*.h") + ["pyconfig.h"] + for ext in self.extensions[:]: ext.sources = [ find_module_file(filename, moddirlist) for filename in ext.sources ] if ext.depends is not None: ext.depends = [find_module_file(filename, alldirlist) for filename in ext.depends] + else: + ext.depends = [] + # re-compile extensions if a header file has been changed + ext.depends.extend(headers) + ext.include_dirs.append( '.' ) # to get config.h for incdir in incdirlist: ext.include_dirs.append( os.path.join(srcdir, incdir) ) |