summaryrefslogtreecommitdiff
path: root/numpy/distutils/command/build_ext.py
diff options
context:
space:
mode:
authorcookedm <cookedm@localhost>2007-11-03 16:09:06 +0000
committercookedm <cookedm@localhost>2007-11-03 16:09:06 +0000
commit2d596da7383cc30092e5812a103eb50b0fb9b16c (patch)
tree06cf99badfbc3299d1ab15c832d7a9caba91b8b8 /numpy/distutils/command/build_ext.py
parentd89f34a70da10562c5d41be5e42d6856e7fca8df (diff)
downloadnumpy-2d596da7383cc30092e5812a103eb50b0fb9b16c.tar.gz
numpy.distutils.command.build_ext: append build C libraries as dependencies of
the extension, to force recompiling if they change. (It should really only force relinking, but adding that is tougher.)
Diffstat (limited to 'numpy/distutils/command/build_ext.py')
-rw-r--r--numpy/distutils/command/build_ext.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/numpy/distutils/command/build_ext.py b/numpy/distutils/command/build_ext.py
index 9277f9393..4f5819175 100644
--- a/numpy/distutils/command/build_ext.py
+++ b/numpy/distutils/command/build_ext.py
@@ -89,6 +89,7 @@ class build_ext (old_build_ext):
' overwriting build_info\n%s... \nwith\n%s...' \
% (libname, `clibs[libname]`[:300], `build_info`[:300]))
clibs[libname] = build_info
+ local_clibs = clibs.copy()
# .. and distribution libraries:
for libname,build_info in self.distribution.libraries or []:
if clibs.has_key(libname):
@@ -105,13 +106,18 @@ class build_ext (old_build_ext):
c_lib_dirs = []
macros = []
for libname in ext.libraries:
- if clibs.has_key(libname):
+ if libname in clibs:
binfo = clibs[libname]
c_libs += binfo.get('libraries',[])
c_lib_dirs += binfo.get('library_dirs',[])
for m in binfo.get('macros',[]):
if m not in macros:
macros.append(m)
+ if libname in local_clibs:
+ c = self.compiler
+ outname = c.library_filename(libname,
+ output_dir=self.build_temp)
+ ext.depends.append(outname)
for l in clibs.get(libname,{}).get('source_languages',[]):
ext_languages.add(l)
if c_libs: