1. Armin Rigo
  2. cpython-withatomic

Commits

Ronald Oussoren  committed dad7453

Merged revisions 75147 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
r75147 | ronald.oussoren | 2009-09-29 21:34:13 +0200 (Tue, 29 Sep 2009) | 4 lines

Fix for issue6957: ensure that the OSX installer
installs a version of Python that can build
extensions on OSX 10.6.
........

  • Participants
  • Parent commits 7e18561
  • Branches 2.6

Comments (0)

Files changed (1)

File Mac/BuildScript/build-installer.py

View file
  • Ignore whitespace
 DEPSRC = os.path.expanduser('~/Universal/other-sources')
 
 # Location of the preferred SDK
-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 = "/"
+
+### There are some issues with the SDK selection below here,
+### The resulting binary doesn't work on all platforms that
+### 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"
 
 universal_opts_map = { '32-bit': ('i386', 'ppc',),
                        '64-bit': ('x86_64', 'ppc64',),
 # $MACOSX_DEPLOYMENT_TARGET -> minimum OS X level
 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: build_python [options]
 
               url="http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz",
               checksum='3c15a0c8d1d3ee1c46a1634d00617b1a',
               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')),
                   ' -arch '.join(ARCHLIST),
                   SDKPATH,
               url="http://www.gzip.org/zlib/zlib-1.2.3.tar.gz",
               checksum='debc62758716a169df9f62e6ab2bc634',
               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')),
                   ' -arch '.join(ARCHLIST),
                   SDKPATH,
     if platform.system() != 'Darwin':
         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")
 
     if not os.path.exists(SDKPATH):
     Parse arguments and update global settings.
     """
     global WORKDIR, DEPSRC, SDKPATH, SRCDIR, DEPTARGET
-    global UNIVERSALOPTS, UNIVERSALARCHS, ARCHLIST
+    global UNIVERSALOPTS, UNIVERSALARCHS, ARCHLIST, CC
 
     if args is None:
         args = sys.argv[1:]
     SDKPATH=os.path.abspath(SDKPATH)
     DEPSRC=os.path.abspath(DEPSRC)
 
+    CC=target_cc_map[DEPTARGET]
+
     print "Settings:"
     print " * Source directory:", SRCDIR
     print " * Build directory: ", WORKDIR
     print " * Third-party source:", DEPSRC
     print " * Deployment target:", DEPTARGET
     print " * Universal architectures:", ARCHLIST
+    print " * C compiler:", CC
     print ""
 
 
     os.chdir(curDir)
     if not os.path.exists(docdir):
         os.mkdir(docdir)
-    os.rename(os.path.join(buildDir, 'build', 'html'),
-            os.path.join(docdir, 'python-docs-html'))
+    os.rename(os.path.join(buildDir, 'build', 'html'), docdir)
 
 
 def buildPython():
     checkEnvironment()
 
     os.environ['MACOSX_DEPLOYMENT_TARGET'] = DEPTARGET
+    os.environ['CC'] = CC
 
     if os.path.exists(WORKDIR):
         shutil.rmtree(WORKDIR)