mirror of
https://github.com/python/cpython.git
synced 2024-11-29 21:05:33 +08:00
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:
parent
9403591014
commit
e259e5980c
@ -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")
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user