From 60f64330d10ecd4a3763dec38e3f50dbed742555 Mon Sep 17 00:00:00 2001 From: Greg Ward Date: Thu, 2 Mar 2000 01:32:21 +0000 Subject: If the "build_lib" command built any C libraries, link with them all when building extensions (uses build_lib's 'get_library_names()' method). Ensure that the relative structure of source filenames is preserved in the temporary build tree, eg. foo/bar.c compiles to build/temp./foo/bar.o. --- Lib/distutils/command/build_ext.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 2bbd89d..fd5cd7a 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -164,7 +164,15 @@ class build_ext (Command): self.compiler.set_runtime_library_dirs (self.rpath) if self.link_objects is not None: self.compiler.set_link_objects (self.link_objects) - + + if self.distribution.libraries: + build_lib = self.find_peer ('build_lib') + self.libraries = build_lib.get_library_names () or [] + self.library_dirs = [build_lib.build_clib] + else: + self.libraries = [] + self.library_dirs = [] + # Now the real loop over extensions self.build_extensions (self.extensions) @@ -237,6 +245,7 @@ class build_ext (Command): include_dirs = build_info.get ('include_dirs') objects = self.compiler.compile (sources, output_dir=self.build_temp, + keep_dir=1, macros=macros, include_dirs=include_dirs, debug=self.debug) @@ -247,8 +256,8 @@ class build_ext (Command): extra_objects = build_info.get ('extra_objects') if extra_objects: objects.extend (extra_objects) - libraries = build_info.get ('libraries') - library_dirs = build_info.get ('library_dirs') + libraries = self.libraries + build_info.get ('libraries') + library_dirs = self.library_dirs + build_info.get ('library_dirs') extra_args = build_info.get ('extra_link_args') or [] if self.compiler.compiler_type == 'msvc': -- cgit v0.12