diff options
Diffstat (limited to 'scipy_distutils/command/build_clib.py')
-rw-r--r-- | scipy_distutils/command/build_clib.py | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/scipy_distutils/command/build_clib.py b/scipy_distutils/command/build_clib.py index 0d22fb685..2ddbfc315 100644 --- a/scipy_distutils/command/build_clib.py +++ b/scipy_distutils/command/build_clib.py @@ -81,8 +81,16 @@ class build_clib(old_build_clib): raise TypeError,'Library "%s" sources contains unresolved'\ ' items (call build_src before built_clib).' % (lib_name) - old_build_clib.run(self) # sets self.compiler - log.info(misc_util.compiler_to_string(self.compiler)) + from distutils.ccompiler import new_compiler + self.compiler = new_compiler(compiler=self.compiler, + dry_run=self.dry_run, + force=self.force) + self.compiler.customize(self.distribution) + + libraries = self.libraries + self.libraries = None + self.compiler.customize_cmd(self) + self.libraries = libraries if self.have_f_sources(): from scipy_distutils.fcompiler import new_fcompiler @@ -91,17 +99,14 @@ class build_clib(old_build_clib): dry_run=self.dry_run, force=self.force) self.fcompiler.customize(self.distribution) - log.info(misc_util.compiler_to_string(self.fcompiler)) - - #XXX: C++ linker support, see build_ext.py - self.build_libraries2(self.libraries) - return + libraries = self.libraries + self.libraries = None + self.fcompiler.customize_cmd(self) + self.libraries = libraries - def build_libraries(self, libraries): - # Hold on building libraries in old_build_clib.run() - # until Fortran/C++ compilers are set. Building will be - # carried out in build_libraries2() + #XXX: C++ linker support, see build_ext.py + self.build_libraries(self.libraries) return def get_source_files(self): @@ -113,7 +118,7 @@ class build_clib(old_build_clib): filenames.extend(get_headers(get_directories(filenames))) return filenames - def build_libraries2(self, libraries): + def build_libraries(self, libraries): compiler = self.compiler fcompiler = self.fcompiler @@ -149,6 +154,7 @@ class build_clib(old_build_clib): if cxx_sources: print 'XXX: C++ linker support not implemented or tested' + objects = compiler.compile(c_sources+cxx_sources, output_dir=self.build_temp, macros=macros, |