Compiling: If possible compile a 64 bit binary on Mac OS X.

--HG--
extra : convert_revision : 23d7c3744bfb20adaa31c999e0478e9055b4f657
This commit is contained in:
Ali Saidi 2007-11-08 17:45:58 -05:00
parent 0673029689
commit c01421a82d

View file

@ -65,7 +65,6 @@
import sys import sys
import os import os
import subprocess
from os.path import isdir, join as joinpath from os.path import isdir, join as joinpath
@ -77,6 +76,10 @@ from os.path import isdir, join as joinpath
# scons script, e.g., "/usr/local/bin/python2.4 `which scons` [args]". # scons script, e.g., "/usr/local/bin/python2.4 `which scons` [args]".
EnsurePythonVersion(2,4) EnsurePythonVersion(2,4)
# Import subprocess after we check the version since it doesn't exist in
# Python < 2.4.
import subprocess
# Ironically, SCons 0.96 dies if you give EnsureSconsVersion a # Ironically, SCons 0.96 dies if you give EnsureSconsVersion a
# 3-element version number. # 3-element version number.
min_scons_version = (0,96,91) min_scons_version = (0,96,91)
@ -329,6 +332,21 @@ conf = Configure(env,
conf_dir = joinpath(build_root, '.scons_config'), conf_dir = joinpath(build_root, '.scons_config'),
log_file = joinpath(build_root, 'scons_config.log')) log_file = joinpath(build_root, 'scons_config.log'))
# Check if we should compile a 64 bit binary on Mac OS X/Darwin
try:
import platform
uname = platform.uname()
if uname[0] == 'Darwin' and compare_versions(uname[2], '9.0.0') >= 0:
if int(subprocess.Popen('sysctl -n hw.cpu64bit_capable', shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
close_fds=True).communicate()[0][0]):
env.Append(CCFLAGS='-arch x86_64')
env.Append(CFLAGS='-arch x86_64')
env.Append(LINKFLAGS='-arch x86_64')
env.Append(ASFLAGS='-arch x86_64')
except:
pass
# Recent versions of scons substitute a "Null" object for Configure() # Recent versions of scons substitute a "Null" object for Configure()
# when configuration isn't necessary, e.g., if the "--help" option is # when configuration isn't necessary, e.g., if the "--help" option is
# present. Unfortuantely this Null object always returns false, # present. Unfortuantely this Null object always returns false,