mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Fix for issue6957: ensure that the OSX installer
installs a version of Python that can build extensions on OSX 10.6.
This commit is contained in:
parent
8b9020458a
commit
209d4c3151
1 changed files with 35 additions and 13 deletions
|
@ -61,13 +61,21 @@ DEPSRC = os.path.join(WORKDIR, 'third-party')
|
||||||
DEPSRC = os.path.expanduser('~/Universal/other-sources')
|
DEPSRC = os.path.expanduser('~/Universal/other-sources')
|
||||||
|
|
||||||
# Location of the preferred SDK
|
# Location of the preferred SDK
|
||||||
if int(os.uname()[2].split('.')[0]) == 8:
|
|
||||||
# Explicitly use the 10.4u (universal) SDK when
|
### There are some issues with the SDK selection below here,
|
||||||
# building on 10.4, the system headers are not
|
### The resulting binary doesn't work on all platforms that
|
||||||
# useable for a universal build
|
### it should. Always default to the 10.4u SDK until that
|
||||||
|
### isue is resolved.
|
||||||
|
###
|
||||||
|
##if int(os.uname()[2].split('.')[0]) == 8:
|
||||||
|
## # Explicitly use the 10.4u (universal) SDK when
|
||||||
|
## # building on 10.4, the system headers are not
|
||||||
|
## # useable for a universal build
|
||||||
|
## SDKPATH = "/Developer/SDKs/MacOSX10.4u.sdk"
|
||||||
|
##else:
|
||||||
|
## SDKPATH = "/"
|
||||||
|
|
||||||
SDKPATH = "/Developer/SDKs/MacOSX10.4u.sdk"
|
SDKPATH = "/Developer/SDKs/MacOSX10.4u.sdk"
|
||||||
else:
|
|
||||||
SDKPATH = "/"
|
|
||||||
|
|
||||||
universal_opts_map = { '32-bit': ('i386', 'ppc',),
|
universal_opts_map = { '32-bit': ('i386', 'ppc',),
|
||||||
'64-bit': ('x86_64', 'ppc64',),
|
'64-bit': ('x86_64', 'ppc64',),
|
||||||
|
@ -97,6 +105,15 @@ SRCDIR = os.path.dirname(
|
||||||
# $MACOSX_DEPLOYMENT_TARGET -> minimum OS X level
|
# $MACOSX_DEPLOYMENT_TARGET -> minimum OS X level
|
||||||
DEPTARGET = '10.3'
|
DEPTARGET = '10.3'
|
||||||
|
|
||||||
|
target_cc_map = {
|
||||||
|
'10.3': 'gcc-4.0',
|
||||||
|
'10.4': 'gcc-4.0',
|
||||||
|
'10.5': 'gcc-4.0',
|
||||||
|
'10.6': 'gcc-4.2',
|
||||||
|
}
|
||||||
|
|
||||||
|
CC = target_cc_map[DEPTARGET]
|
||||||
|
|
||||||
USAGE = textwrap.dedent("""\
|
USAGE = textwrap.dedent("""\
|
||||||
Usage: build_python [options]
|
Usage: build_python [options]
|
||||||
|
|
||||||
|
@ -126,7 +143,8 @@ def library_recipes():
|
||||||
url="http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz",
|
url="http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz",
|
||||||
checksum='3c15a0c8d1d3ee1c46a1634d00617b1a',
|
checksum='3c15a0c8d1d3ee1c46a1634d00617b1a',
|
||||||
configure=None,
|
configure=None,
|
||||||
install='make install PREFIX=%s/usr/local/ CFLAGS="-arch %s -isysroot %s"'%(
|
install='make install CC=%s PREFIX=%s/usr/local/ CFLAGS="-arch %s -isysroot %s"'%(
|
||||||
|
CC,
|
||||||
shellQuote(os.path.join(WORKDIR, 'libraries')),
|
shellQuote(os.path.join(WORKDIR, 'libraries')),
|
||||||
' -arch '.join(ARCHLIST),
|
' -arch '.join(ARCHLIST),
|
||||||
SDKPATH,
|
SDKPATH,
|
||||||
|
@ -137,7 +155,8 @@ def library_recipes():
|
||||||
url="http://www.gzip.org/zlib/zlib-1.2.3.tar.gz",
|
url="http://www.gzip.org/zlib/zlib-1.2.3.tar.gz",
|
||||||
checksum='debc62758716a169df9f62e6ab2bc634',
|
checksum='debc62758716a169df9f62e6ab2bc634',
|
||||||
configure=None,
|
configure=None,
|
||||||
install='make install prefix=%s/usr/local/ CFLAGS="-arch %s -isysroot %s"'%(
|
install='make install CC=%s prefix=%s/usr/local/ CFLAGS="-arch %s -isysroot %s"'%(
|
||||||
|
CC,
|
||||||
shellQuote(os.path.join(WORKDIR, 'libraries')),
|
shellQuote(os.path.join(WORKDIR, 'libraries')),
|
||||||
' -arch '.join(ARCHLIST),
|
' -arch '.join(ARCHLIST),
|
||||||
SDKPATH,
|
SDKPATH,
|
||||||
|
@ -354,7 +373,7 @@ def checkEnvironment():
|
||||||
if platform.system() != 'Darwin':
|
if platform.system() != 'Darwin':
|
||||||
fatal("This script should be run on a Mac OS X 10.4 (or later) system")
|
fatal("This script should be run on a Mac OS X 10.4 (or later) system")
|
||||||
|
|
||||||
if int(platform.release().split('.')[0]) <= 8:
|
if int(platform.release().split('.')[0]) < 8:
|
||||||
fatal("This script should be run on a Mac OS X 10.4 (or later) system")
|
fatal("This script should be run on a Mac OS X 10.4 (or later) system")
|
||||||
|
|
||||||
if not os.path.exists(SDKPATH):
|
if not os.path.exists(SDKPATH):
|
||||||
|
@ -368,7 +387,7 @@ def parseOptions(args=None):
|
||||||
Parse arguments and update global settings.
|
Parse arguments and update global settings.
|
||||||
"""
|
"""
|
||||||
global WORKDIR, DEPSRC, SDKPATH, SRCDIR, DEPTARGET
|
global WORKDIR, DEPSRC, SDKPATH, SRCDIR, DEPTARGET
|
||||||
global UNIVERSALOPTS, UNIVERSALARCHS, ARCHLIST
|
global UNIVERSALOPTS, UNIVERSALARCHS, ARCHLIST, CC
|
||||||
|
|
||||||
if args is None:
|
if args is None:
|
||||||
args = sys.argv[1:]
|
args = sys.argv[1:]
|
||||||
|
@ -426,6 +445,8 @@ def parseOptions(args=None):
|
||||||
SDKPATH=os.path.abspath(SDKPATH)
|
SDKPATH=os.path.abspath(SDKPATH)
|
||||||
DEPSRC=os.path.abspath(DEPSRC)
|
DEPSRC=os.path.abspath(DEPSRC)
|
||||||
|
|
||||||
|
CC=target_cc_map[DEPTARGET]
|
||||||
|
|
||||||
print "Settings:"
|
print "Settings:"
|
||||||
print " * Source directory:", SRCDIR
|
print " * Source directory:", SRCDIR
|
||||||
print " * Build directory: ", WORKDIR
|
print " * Build directory: ", WORKDIR
|
||||||
|
@ -433,6 +454,7 @@ def parseOptions(args=None):
|
||||||
print " * Third-party source:", DEPSRC
|
print " * Third-party source:", DEPSRC
|
||||||
print " * Deployment target:", DEPTARGET
|
print " * Deployment target:", DEPTARGET
|
||||||
print " * Universal architectures:", ARCHLIST
|
print " * Universal architectures:", ARCHLIST
|
||||||
|
print " * C compiler:", CC
|
||||||
print ""
|
print ""
|
||||||
|
|
||||||
|
|
||||||
|
@ -652,8 +674,7 @@ def buildPythonDocs():
|
||||||
os.chdir(curDir)
|
os.chdir(curDir)
|
||||||
if not os.path.exists(docdir):
|
if not os.path.exists(docdir):
|
||||||
os.mkdir(docdir)
|
os.mkdir(docdir)
|
||||||
os.rename(os.path.join(buildDir, 'build', 'html'),
|
os.rename(os.path.join(buildDir, 'build', 'html'), docdir)
|
||||||
os.path.join(docdir, 'python-docs-html'))
|
|
||||||
|
|
||||||
|
|
||||||
def buildPython():
|
def buildPython():
|
||||||
|
@ -1039,6 +1060,7 @@ def main():
|
||||||
checkEnvironment()
|
checkEnvironment()
|
||||||
|
|
||||||
os.environ['MACOSX_DEPLOYMENT_TARGET'] = DEPTARGET
|
os.environ['MACOSX_DEPLOYMENT_TARGET'] = DEPTARGET
|
||||||
|
os.environ['CC'] = CC
|
||||||
|
|
||||||
if os.path.exists(WORKDIR):
|
if os.path.exists(WORKDIR):
|
||||||
shutil.rmtree(WORKDIR)
|
shutil.rmtree(WORKDIR)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue