[Python-checkins] r67988 - in python/trunk: Doc/distutils/apiref.rst Lib/distutils/util.py

ronald.oussoren python-checkins at python.org
Sun Dec 28 20:40:57 CET 2008


Author: ronald.oussoren
Date: Sun Dec 28 20:40:56 2008
New Revision: 67988
Log:
Issue4064: architecture string for universal builds on OSX
Modified:
 python/trunk/Doc/distutils/apiref.rst
 python/trunk/Lib/distutils/util.py
Modified: python/trunk/Doc/distutils/apiref.rst
==============================================================================
--- python/trunk/Doc/distutils/apiref.rst	(original)
+++ python/trunk/Doc/distutils/apiref.rst	Sun Dec 28 20:40:56 2008
@@ -1100,6 +1100,23 @@
 
 For non-POSIX platforms, currently just returns ``sys.platform``.
 
+ For MacOS X systems the OS version reflects the minimal version on which
+ binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET``
+ during the build of Python), not the OS version of the current system. 
+
+ For universal binary builds on MacOS X the architecture value reflects
+ the univeral binary status instead of the architecture of the current
+ processor. For 32-bit universal binaries the architecture is ``fat``, 
+ for 4-way universal binaries the architecture is ``universal``. 
+
+ Examples of returned values on MacOS X:
+
+ * ``macosx-10.3-ppc``
+
+ * ``macosx-10.3-fat``
+
+ * ``macosx-10.5-universal``
+
 .. % XXX isn't this also provided by some other non-distutils module?
 
 
Modified: python/trunk/Lib/distutils/util.py
==============================================================================
--- python/trunk/Lib/distutils/util.py	(original)
+++ python/trunk/Lib/distutils/util.py	Sun Dec 28 20:40:56 2008
@@ -100,7 +100,11 @@
 if not macver:
 macver = cfgvars.get('MACOSX_DEPLOYMENT_TARGET')
 
- if not macver:
+ if 1:
+ # Always calculate the release of the running machine,
+ # needed to determine if we can build fat binaries or not.
+
+ macrelease = macver
 # Get the system version. Reading this plist is a documented
 # way to get the system version (see the documentation for
 # the Gestalt Manager)
@@ -116,16 +120,18 @@
 r'<string>(.*?)</string>', f.read())
 f.close()
 if m is not None:
- macver = '.'.join(m.group(1).split('.')[:2])
+ macrelease = '.'.join(m.group(1).split('.')[:2])
 # else: fall back to the default behaviour
 
+ if not macver:
+ macver = macrelease
+
 if macver:
 from distutils.sysconfig import get_config_vars
 release = macver
 osname = "macosx"
 
-
- if (release + '.') >= '10.4.' and \
+ if (macrelease + '.') >= '10.4.' and \
 '-arch' in get_config_vars().get('CFLAGS', '').strip():
 # The universal build will build fat binaries, but not on
 # systems before 10.4


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /