summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/unixccompiler.py
diff options
context:
space:
mode:
authorRonald Oussoren <ronaldoussoren@mac.com>2008-06-05 12:58:24 (GMT)
committerRonald Oussoren <ronaldoussoren@mac.com>2008-06-05 12:58:24 (GMT)
commit5640ce2f1edc0148ee14fd3daeb7ac700700bb71 (patch)
tree9bc8b41710d3a86ccbb579a0209928d787386b69 /Lib/distutils/unixccompiler.py
parent80af6da7489c3b28e0a46c73849da34273972e3b (diff)
downloadcpython-5640ce2f1edc0148ee14fd3daeb7ac700700bb71.zip
cpython-5640ce2f1edc0148ee14fd3daeb7ac700700bb71.tar.gz
cpython-5640ce2f1edc0148ee14fd3daeb7ac700700bb71.tar.bz2
MacOS X: Enable 4-way universal builds
This patch adds a new configure argument on OSX: --with-universal-archs=[32-bit|64-bit|all] When used with the --enable-universalsdk option this controls which CPU architectures are includes in the framework. The default is 32-bit, meaning i386 and ppc. The most useful alternative is 'all', which includes all 4 CPU architectures supported by MacOS X (i386, ppc, x86_64 and ppc64). This includes limited support for the Carbon bindings in 64-bit mode as well, limited because (a) I haven't done extensive testing and (b) a large portion of the Carbon API's aren't available in 64-bit mode anyway. I've also duplicated a feature of Apple's build of python: setting the environment variable 'ARCHFLAGS' controls the '-arch' flags used for building extensions using distutils.
Diffstat (limited to 'Lib/distutils/unixccompiler.py')
-rw-r--r--Lib/distutils/unixccompiler.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index dc759ee..6144efc 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -64,7 +64,7 @@ def _darwin_compiler_fixup(compiler_so, cc_args):
stripArch = '-arch' in cc_args
stripSysroot = '-isysroot' in cc_args
- if stripArch:
+ if stripArch or 'ARCHFLAGS' in os.environ:
while 1:
try:
index = compiler_so.index('-arch')
@@ -73,6 +73,12 @@ def _darwin_compiler_fixup(compiler_so, cc_args):
except ValueError:
break
+ if 'ARCHFLAGS' in os.environ and not stripArch:
+ # User specified different -arch flags in the environ,
+ # see also distutils.sysconfig
+ compiler_so = compiler_so + ' ' + os.environ['ARCHFLAGS']
+
+
if stripSysroot:
try:
index = compiler_so.index('-isysroot')