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
This commit is contained in:
Christian Heimes 2008-01-25 15:52:11 +00:00
parent 543cabc842
commit 8608d91e07
1 changed files with 9 additions and 0 deletions

View File

@ -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) )