diff options
author | cookedm <cookedm@localhost> | 2007-11-03 16:09:06 +0000 |
---|---|---|
committer | cookedm <cookedm@localhost> | 2007-11-03 16:09:06 +0000 |
commit | 2d596da7383cc30092e5812a103eb50b0fb9b16c (patch) | |
tree | 06cf99badfbc3299d1ab15c832d7a9caba91b8b8 /numpy/distutils/command/build_ext.py | |
parent | d89f34a70da10562c5d41be5e42d6856e7fca8df (diff) | |
download | numpy-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.py | 8 |
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: |