diff options
author | Greg Ward <gward@python.net> | 2000-03-18 15:19:51 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2000-03-18 15:19:51 (GMT) |
commit | d03f88a38f9fe56f1981bae50c007d4b21c99001 (patch) | |
tree | 7100cce65bb3e8f421391de6b4ac8002398c2a5b | |
parent | 295765630acaacaebec1f13988b1f3277287b4fc (diff) | |
download | cpython-d03f88a38f9fe56f1981bae50c007d4b21c99001.zip cpython-d03f88a38f9fe56f1981bae50c007d4b21c99001.tar.gz cpython-d03f88a38f9fe56f1981bae50c007d4b21c99001.tar.bz2 |
Changed to pay attention to the 'runtime_library_dirs' list (= 'rpath'
option in the 'build_ext' command):
* in ccompiler.py: 'gen_lib_options()' now takes 'runtime_library_dirs'
parameter
* in unixccompiler.py and msvccompiler.py: now pass
'self.runtime_library_dirs' to 'gen_lib_options()', and define
'runtime_library_dir_option()' (although in msvccompiler.py it
blows up with a DistutilsPlatformError right now!)
-rw-r--r-- | Lib/distutils/ccompiler.py | 5 | ||||
-rw-r--r-- | Lib/distutils/msvccompiler.py | 8 | ||||
-rw-r--r-- | Lib/distutils/unixccompiler.py | 11 |
3 files changed, 20 insertions, 4 deletions
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py index 46dabad..4a8c1d3 100644 --- a/Lib/distutils/ccompiler.py +++ b/Lib/distutils/ccompiler.py @@ -770,7 +770,7 @@ def gen_preprocess_options (macros, include_dirs): # gen_preprocess_options () -def gen_lib_options (compiler, library_dirs, libraries): +def gen_lib_options (compiler, library_dirs, runtime_library_dirs, libraries): """Generate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and @@ -783,6 +783,9 @@ def gen_lib_options (compiler, library_dirs, libraries): for dir in library_dirs: lib_opts.append (compiler.library_dir_option (dir)) + for dir in runtime_library_dirs: + lib_opts.append (compiler.runtime_library_dir_option (dir)) + # XXX it's important that we *not* remove redundant library mentions! # sometimes you really do have to say "-lfoo -lbar -lfoo" in order to # resolve all symbols. I just hope we never have to say "-lfoo obj.o diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py index bf5257f..7324b8e 100644 --- a/Lib/distutils/msvccompiler.py +++ b/Lib/distutils/msvccompiler.py @@ -307,7 +307,9 @@ class MSVCCompiler (CCompiler) : self._fix_link_args (objects, output_dir, takes_libs=1, libraries=libraries, library_dirs=library_dirs) - lib_opts = gen_lib_options (self, library_dirs, libraries) + lib_opts = gen_lib_options (self, + library_dirs, self.runtime_library_dirs, + libraries) if type (output_dir) not in (StringType, NoneType): raise TypeError, "'output_dir' must be a string or None" if output_dir is not None: @@ -348,6 +350,10 @@ class MSVCCompiler (CCompiler) : def library_dir_option (self, dir): return "/LIBPATH:" + dir + def runtime_library_dir_option (self, dir): + raise DistutilsPlatformError, \ + "don't know how to set runtime library search path for MSVC++" + def library_option (self, lib): return self.library_filename (lib) diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py index 0d2858d..ec85571 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -197,7 +197,9 @@ class UnixCCompiler (CCompiler): self._fix_link_args (objects, output_dir, takes_libs=1, libraries=libraries, library_dirs=library_dirs) - lib_opts = gen_lib_options (self, library_dirs, libraries) + lib_opts = gen_lib_options (self, + library_dirs, self.runtime_library_dirs, + libraries) if type (output_dir) not in (StringType, NoneType): raise TypeError, "'output_dir' must be a string or None" if output_dir is not None: @@ -234,7 +236,9 @@ class UnixCCompiler (CCompiler): self._fix_link_args (objects, output_dir, takes_libs=1, libraries=libraries, library_dirs=library_dirs) - lib_opts = gen_lib_options (self, library_dirs, libraries) + lib_opts = gen_lib_options (self, + library_dirs, self.runtime_library_dirs, + libraries) output_filename = output_progname # Unix-ism! if output_dir is not None: output_filename = os.path.join (output_dir, output_filename) @@ -262,6 +266,9 @@ class UnixCCompiler (CCompiler): def library_dir_option (self, dir): return "-L" + dir + def runtime_library_dir_option (self, dir): + return "-R" + dir + def library_option (self, lib): return "-l" + lib |