Commit 73378954 authored by Ronald Oussoren's avatar Ronald Oussoren

Fix for issue #7724: make it possible to build using

the OSX 10.4u SDK on MacOSX 10.6 by honoring the specified
SDK when looking for files.
parent dd745def
...@@ -15,7 +15,7 @@ the "typical" Unix-style command-line C compiler: ...@@ -15,7 +15,7 @@ the "typical" Unix-style command-line C compiler:
__revision__ = "$Id$" __revision__ = "$Id$"
import os, sys import os, sys, re
from types import StringType, NoneType from types import StringType, NoneType
from distutils import sysconfig from distutils import sysconfig
...@@ -305,10 +305,29 @@ class UnixCCompiler(CCompiler): ...@@ -305,10 +305,29 @@ class UnixCCompiler(CCompiler):
dylib_f = self.library_filename(lib, lib_type='dylib') dylib_f = self.library_filename(lib, lib_type='dylib')
static_f = self.library_filename(lib, lib_type='static') static_f = self.library_filename(lib, lib_type='static')
if sys.platform == 'darwin':
# On OSX users can specify an alternate SDK using
# '-isysroot', calculate the SDK root if it is specified
# (and use it further on)
cflags = sysconfig.get_config_var('CFLAGS')
m = re.search(r'-isysroot\s+(\S+)', cflags)
if m is None:
sysroot = '/'
else:
sysroot = m.group(1)
for dir in dirs: for dir in dirs:
shared = os.path.join(dir, shared_f) shared = os.path.join(dir, shared_f)
dylib = os.path.join(dir, dylib_f) dylib = os.path.join(dir, dylib_f)
static = os.path.join(dir, static_f) static = os.path.join(dir, static_f)
if sys.platform == 'darwin' and (dir.startswith('/System/') or dir.startswith('/usr/')):
shared = os.path.join(sysroot, dir[1:], shared_f)
dylib = os.path.join(sysroot, dir[1:], dylib_f)
static = os.path.join(sysroot, dir[1:], static_f)
# We're second-guessing the linker here, with not much hard # We're second-guessing the linker here, with not much hard
# 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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment