Index: site_scons/site_tools/naclsdk.py |
diff --git a/site_scons/site_tools/naclsdk.py b/site_scons/site_tools/naclsdk.py |
index 1bef2b8430d797aeec1106a7e8c3084aa52c0480..66fc09ad22d3a0d3143ba4893538709d830c5595 100755 |
--- a/site_scons/site_tools/naclsdk.py |
+++ b/site_scons/site_tools/naclsdk.py |
@@ -58,51 +58,6 @@ def _StubOutEnvToolsForBuiltElsewhere(env): |
STRIP='true') |
-def _GetNaClSdkRoot(env, sdk_mode, psdk_mode): |
- """Return the path to the sdk. |
- |
- Args: |
- env: The SCons environment in question. |
- sdk_mode: A string indicating which location to select the tools from. |
- Returns: |
- The path to the sdk. |
- """ |
- |
- # Allow pnacl to override its path separately. See comments for why |
- # psdk_mode is separate from sdk_mode. |
- if env.Bit('bitcode') and psdk_mode.startswith('custom:'): |
- return os.path.abspath(psdk_mode[len('custom:'):]) |
- |
- if sdk_mode == 'local': |
- if env['PLATFORM'] in ['win32', 'cygwin']: |
- # Try to use cygpath under the assumption we are running thru cygwin. |
- # If this is not the case, then 'local' doesn't really make any sense, |
- # so then we should complain. |
- try: |
- path = subprocess.Popen( |
- ['cygpath', '-m', '/usr/local/nacl-sdk'], |
- shell=True, |
- stdout=subprocess.PIPE).communicate()[0].replace('\n', '') |
- except WindowsError: |
- raise NotImplementedError( |
- 'Not able to decide where /usr/local/nacl-sdk is on this platform,' |
- 'use naclsdk_mode=custom:...') |
- return path |
- else: |
- return '/usr/local/nacl-sdk' |
- |
- elif sdk_mode == 'download': |
- return env.GetToolchainDir() |
- elif sdk_mode.startswith('custom:'): |
- return os.path.abspath(sdk_mode[len('custom:'):]) |
- |
- elif sdk_mode == 'manual': |
- return None |
- |
- else: |
- raise Exception('Unknown sdk mode: %r' % sdk_mode) |
- |
- |
def _SetEnvForNativeSdk(env, sdk_path): |
"""Initialize environment according to target architecture.""" |
@@ -340,22 +295,6 @@ def _SetEnvForPnacl(env, root): |
env.Replace(PNACLFINALIZE='true') |
-def _SetEnvForSdkManually(env): |
- def GetEnvOrDummy(v): |
- return os.getenv('NACL_SDK_' + v, 'MISSING_SDK_' + v) |
- |
- env.Replace(# Replace header and lib paths. |
- NACL_SDK_INCLUDE=GetEnvOrDummy('INCLUDE'), |
- NACL_SDK_LIB=GetEnvOrDummy('LIB'), |
- # Replace the normal unix tools with the NaCl ones. |
- CC=GetEnvOrDummy('CC'), |
- CXX=GetEnvOrDummy('CXX'), |
- AR=GetEnvOrDummy('AR'), |
- # NOTE: use g++ for linking so we can handle c AND c++ |
- LINK=GetEnvOrDummy('LINK'), |
- RANLIB=GetEnvOrDummy('RANLIB'), |
- ) |
- |
def PNaClForceNative(env): |
assert(env.Bit('bitcode')) |
if env.Bit('pnacl_generate_pexe'): |
@@ -651,17 +590,6 @@ def generate(env): |
env.AddMethod(PNaClForceNative) |
env.AddMethod(PNaClGetNNaClEnv) |
- # Get configuration option for getting the naclsdk. Default is download. |
- # We have a separate flag for pnacl "psdk_mode" since even with PNaCl, |
- # the native nacl-gcc toolchain is used to build some parts like |
- # the irt-core. |
- sdk_mode = SCons.Script.ARGUMENTS.get('naclsdk_mode', 'download') |
- psdk_mode = SCons.Script.ARGUMENTS.get('pnaclsdk_mode', 'default') |
- if psdk_mode != 'default' and not psdk_mode.startswith('custom:'): |
- raise Exception( |
- 'pnaclsdk_mode only supports "default" or "custom:path", not %s' % |
- psdk_mode) |
- |
# Invoke the various unix tools that the NativeClient SDK resembles. |
env.Tool('g++') |
env.Tool('gcc') |
@@ -730,31 +658,27 @@ def generate(env): |
env[com] = "${TEMPFILE('%s')}" % env[com] |
# Get root of the SDK. |
- root = _GetNaClSdkRoot(env, sdk_mode, psdk_mode) |
- |
- # Determine where to get the SDK from. |
- if sdk_mode == 'manual': |
- _SetEnvForSdkManually(env) |
+ root = env.GetToolchainDir() |
+ |
+ # if bitcode=1 use pnacl toolchain |
+ if env.Bit('bitcode'): |
+ _SetEnvForPnacl(env, root) |
+ |
+ # Get GDB from the nacl-gcc toolchain even when using PNaCl. |
+ # TODO(mseaborn): We really want the nacl-gdb binary to be in a |
+ # separate tarball from the nacl-gcc toolchain, then this step |
+ # will not be necessary. |
+ # See http://code.google.com/p/nativeclient/issues/detail?id=2773 |
+ if env.Bit('target_x86'): |
+ temp_env = env.Clone() |
+ temp_env.ClearBits('bitcode') |
+ temp_root = temp_env.GetToolchainDir() |
+ _SetEnvForNativeSdk(temp_env, temp_root) |
+ env.Replace(GDB=temp_env['GDB']) |
+ elif env.Bit('built_elsewhere'): |
+ _StubOutEnvToolsForBuiltElsewhere(env) |
else: |
- # if bitcode=1 use pnacl toolchain |
- if env.Bit('bitcode'): |
- _SetEnvForPnacl(env, root) |
- |
- # Get GDB from the nacl-gcc toolchain even when using PNaCl. |
- # TODO(mseaborn): We really want the nacl-gdb binary to be in a |
- # separate tarball from the nacl-gcc toolchain, then this step |
- # will not be necessary. |
- # See http://code.google.com/p/nativeclient/issues/detail?id=2773 |
- if env.Bit('target_x86'): |
- temp_env = env.Clone() |
- temp_env.ClearBits('bitcode') |
- temp_root = _GetNaClSdkRoot(temp_env, sdk_mode, psdk_mode) |
- _SetEnvForNativeSdk(temp_env, temp_root) |
- env.Replace(GDB=temp_env['GDB']) |
- elif env.Bit('built_elsewhere'): |
- _StubOutEnvToolsForBuiltElsewhere(env) |
- else: |
- _SetEnvForNativeSdk(env, root) |
+ _SetEnvForNativeSdk(env, root) |
env.Prepend(LIBPATH='${NACL_SDK_LIB}') |