Patch by Bill Noon: added 'dylib' as a library type along with

'static' and 'shared'. This fixes extension building for dynamic
Pythons on MacOSX.
This commit is contained in:
Jack Jansen 2001-08-27 15:08:16 +00:00
parent 9403591014
commit e259e5980c
2 changed files with 9 additions and 4 deletions

View File

@ -792,8 +792,8 @@ class CCompiler:
output_dir=''): output_dir=''):
if output_dir is None: output_dir = '' if output_dir is None: output_dir = ''
if lib_type not in ("static","shared"): if lib_type not in ("static","shared","dylib"):
raise ValueError, "'lib_type' must be \"static\" or \"shared\"" raise ValueError, "'lib_type' must be \"static\", \"shared\" or \"dylib\""
fmt = getattr (self, lib_type + "_lib_format") fmt = getattr (self, lib_type + "_lib_format")
ext = getattr (self, lib_type + "_lib_extension") ext = getattr (self, lib_type + "_lib_extension")

View File

@ -71,7 +71,8 @@ class UnixCCompiler (CCompiler):
obj_extension = ".o" obj_extension = ".o"
static_lib_extension = ".a" static_lib_extension = ".a"
shared_lib_extension = ".so" 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: for dir in dirs:
shared = os.path.join( shared = os.path.join(
dir, self.library_filename(lib, lib_type='shared')) dir, self.library_filename(lib, lib_type='shared'))
dylib = os.path.join(
dir, self.library_filename(lib, lib_type='dylib'))
static = os.path.join( static = os.path.join(
dir, self.library_filename(lib, lib_type='static')) 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 # 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 # assuming that *all* Unix C compilers do. And of course I'm
# ignoring even GCC's "-static" option. So sue me. # 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 return shared
elif os.path.exists(static): elif os.path.exists(static):
return static return static