From: Jack Jansen Date: Mon, 27 Aug 2001 15:08:16 +0000 (+0000) Subject: Patch by Bill Noon: added 'dylib' as a library type along with X-Git-Tag: v2.2a3~314 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e259e5980c0a0889024ee99e4879a80fa8cd2086;p=python Patch by Bill Noon: added 'dylib' as a library type along with 'static' and 'shared'. This fixes extension building for dynamic Pythons on MacOSX. --- diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py index 4a282d4cff..4efd93407b 100644 --- a/Lib/distutils/ccompiler.py +++ b/Lib/distutils/ccompiler.py @@ -792,8 +792,8 @@ class CCompiler: output_dir=''): if output_dir is None: output_dir = '' - if lib_type not in ("static","shared"): - raise ValueError, "'lib_type' must be \"static\" or \"shared\"" + if lib_type not in ("static","shared","dylib"): + raise ValueError, "'lib_type' must be \"static\", \"shared\" or \"dylib\"" fmt = getattr (self, lib_type + "_lib_format") ext = getattr (self, lib_type + "_lib_extension") diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py index da1f2a4e8e..a4f0ac4d04 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -71,7 +71,8 @@ class UnixCCompiler (CCompiler): obj_extension = ".o" static_lib_extension = ".a" shared_lib_extension = ".so" - static_lib_format = shared_lib_format = "lib%s%s" + dylib_lib_extension = ".dylib" + static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s" @@ -259,6 +260,8 @@ class UnixCCompiler (CCompiler): for dir in dirs: shared = os.path.join( dir, self.library_filename(lib, lib_type='shared')) + dylib = os.path.join( + dir, self.library_filename(lib, lib_type='dylib')) static = os.path.join( dir, self.library_filename(lib, lib_type='static')) @@ -266,7 +269,9 @@ class UnixCCompiler (CCompiler): # data to go on: GCC seems to prefer the shared library, so I'm # assuming that *all* Unix C compilers do. And of course I'm # ignoring even GCC's "-static" option. So sue me. - if os.path.exists(shared): + if os.path.exists(dylib): + return dylib + elif os.path.exists(shared): return shared elif os.path.exists(static): return static