blob: 07d9036afc205b702e2406dbb084889db7433493 [file] [log] [blame]
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
######################################################################
'includes': [
'build/common.gypi',
],
######################################################################
'variables': {
'disable_glibc%': 0,
'disable_newlib%': 0,
'disable_pnacl%': 0,
'disable_arm%': 0,
'disable_glibc_untar%': 0,
'disable_newlib_untar%': 0,
'disable_arm_untar%': 0,
'disable_pnacl_untar%': 0,
'conditions': [
['OS=="win"', {
'TOOLCHAIN_OS': 'i686_w64_mingw32'
}],
['OS=="linux"', {
'TOOLCHAIN_OS': 'i686_linux'
}],
['OS=="mac"', {
'TOOLCHAIN_OS': 'x86_64_apple_darwin'
}],
]
},
'targets' : [
{
'target_name': 'prep_toolchain',
'type': 'none',
'dependencies': [
'untar_toolchains',
'prep_nacl_sdk',
],
'conditions': [
['target_arch=="ia32" or target_arch=="x64"', {
'dependencies': [
'crt_init_32',
'crt_fini_32',
'crt_init_64',
'crt_fini_64',
],
}],
['target_arch=="arm"', {
'dependencies': [
'crt_init_arm',
'crt_fini_arm',
]
}],
],
},
{
'target_name': 'untar_toolchains',
'type': 'none',
'variables': {
'newlib_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib',
'glibc_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc',
'pnacl_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl',
'arm_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_arm_newlib',
},
'conditions': [
['disable_newlib==0 and disable_newlib_untar==0', {
'actions': [
{
'action_name': 'Untar x86 newlib toolchain',
'msvs_cygwin_shell': 0,
'description': 'Untar x86 newlib toolchain',
'inputs': [
'<(DEPTH)/native_client/build/cygtar.py',
'<(DEPTH)/native_client/toolchain/.tars/naclsdk_<(OS)_x86.tgz',
],
'outputs': ['>(newlib_dir)/stamp.untar'],
'action': [
'python',
'<(DEPTH)/native_client/build/untar_toolchain.py',
'--tool', 'x86_newlib',
'--tmp', '<(SHARED_INTERMEDIATE_DIR)/untar',
'--sdk', '<(SHARED_INTERMEDIATE_DIR)/sdk',
'--os', '<(OS)',
'<(DEPTH)/native_client/toolchain/.tars/naclsdk_<(OS)_x86.tgz',
],
},
]
}],
['disable_glibc==0 and disable_glibc_untar==0', {
'actions': [
{
'action_name': 'Untar x86 glibc toolchain',
'msvs_cygwin_shell': 0,
'description': 'Untar x86 glibc toolchain',
'inputs': [
'<(DEPTH)/native_client/build/cygtar.py',
'<(DEPTH)/native_client/toolchain/.tars/toolchain_<(OS)_x86.tar.bz2',
],
'outputs': ['>(glibc_dir)/stamp.untar'],
'action': [
'python',
'<(DEPTH)/native_client/build/untar_toolchain.py',
'--tool', 'x86_glibc',
'--tmp', '<(SHARED_INTERMEDIATE_DIR)/untar',
'--sdk', '<(SHARED_INTERMEDIATE_DIR)/sdk',
'--os', '<(OS)',
'<(DEPTH)/native_client/toolchain/.tars/toolchain_<(OS)_x86.tar.bz2',
],
},
]
}],
['disable_pnacl==0 and disable_pnacl_untar==0', {
'actions': [
{
'action_name': 'Untar pnacl toolchain',
'msvs_cygwin_shell': 0,
'description': 'Untar pnacl toolchain',
'inputs': [
'<(DEPTH)/native_client/build/cygtar.py',
'<(DEPTH)/native_client/toolchain/.tars/naclsdk_pnacl_<(OS)_x86.tgz',
],
'outputs': ['>(pnacl_dir)/stamp.untar'],
'action': [
'python',
'<(DEPTH)/native_client/build/untar_toolchain.py',
'--tool', 'pnacl',
'--tmp', '<(SHARED_INTERMEDIATE_DIR)/untar',
'--sdk', '<(SHARED_INTERMEDIATE_DIR)/sdk',
'--os', '<(OS)',
'<(DEPTH)/native_client/toolchain/.tars/naclsdk_pnacl_<(OS)_x86.tgz',
],
},
]
}],
['target_arch=="arm" and disable_arm==0 and disable_arm_untar==0', {
'actions': [
{
'action_name': 'Untar arm toolchain',
'msvs_cygwin_shell': 0,
'description': 'Untar arm toolchain',
'inputs': [
'<(DEPTH)/native_client/build/cygtar.py',
'<(DEPTH)/native_client/toolchain/.tars/gcc_arm_<(TOOLCHAIN_OS).tgz',
'<(DEPTH)/native_client/toolchain/.tars/binutils_arm_<(TOOLCHAIN_OS).tgz',
'<(DEPTH)/native_client/toolchain/.tars/newlib_arm.tgz',
'<(DEPTH)/native_client/toolchain/.tars/gcc_libs_arm.tgz',
],
'outputs': ['>(arm_dir)/stamp.untar'],
'action': [
'python',
'<(DEPTH)/native_client/build/untar_toolchain.py',
'--tool', 'arm_newlib',
'--tmp', '<(SHARED_INTERMEDIATE_DIR)/untar',
'--sdk', '<(SHARED_INTERMEDIATE_DIR)/sdk',
'--os', '<(OS)',
'<(DEPTH)/native_client/toolchain/.tars/gcc_arm_<(TOOLCHAIN_OS).tgz',
'<(DEPTH)/native_client/toolchain/.tars/binutils_arm_<(TOOLCHAIN_OS).tgz',
'<(DEPTH)/native_client/toolchain/.tars/newlib_arm.tgz',
'<(DEPTH)/native_client/toolchain/.tars/gcc_libs_arm.tgz',
],
},
]
}],
]
},
{
'target_name': 'prep_nacl_sdk',
'type': 'none',
'dependencies': [
'untar_toolchains',
],
'variables': {
'newlib_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib',
'glibc_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc',
'arm_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_arm_newlib',
'pnacl_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl',
},
'conditions': [
['disable_newlib==0', {
'actions': [
{
'action_name': 'Prep x86 newlib toolchain',
'msvs_cygwin_shell': 0,
'description': 'Prep x86 newlib toolchain',
'inputs': [
'<(newlib_dir)/stamp.untar',
'>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_newlib)',
],
'outputs': ['<(newlib_dir)/stamp.prep'],
'action': [
'python',
'<(DEPTH)/native_client/build/prep_nacl_sdk.py',
'--tool', 'x86_newlib',
'--path', '<(newlib_dir)',
],
},
]
}],
['disable_glibc==0', {
'actions': [
{
'action_name': 'Prep x86 glibc toolchain',
'msvs_cygwin_shell': 0,
'description': 'Prep x86 glibc toolchain',
'inputs': [
'<(glibc_dir)/stamp.untar',
'>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_glibc)',
],
'outputs': ['<(glibc_dir)/stamp.prep'],
'action': [
'python',
'<(DEPTH)/native_client/build/prep_nacl_sdk.py',
'--tool', 'x86_glibc',
'--path', '<(glibc_dir)',
],
},
]
}],
['target_arch=="arm" and disable_arm==0', {
'actions': [
{
'action_name': 'Prep arm toolchain',
'msvs_cygwin_shell': 0,
'description': 'Prep arm toolchain',
'inputs': [
'<(arm_dir)/stamp.untar',
'>!@pymod_do_main(prep_nacl_sdk --inputs --tool arm_newlib)',
],
'outputs': ['<(arm_dir)/stamp.prep'],
'action': [
'python',
'<(DEPTH)/native_client/build/prep_nacl_sdk.py',
'--tool', 'arm_newlib',
'--path', '<(arm_dir)',
],
},
]
}],
['disable_pnacl==0', {
'actions': [
{
'action_name': 'Prep pnacl toolchain',
'msvs_cygwin_shell': 0,
'description': 'Prep pnacl toolchain',
'inputs': [
'<(pnacl_dir)/stamp.untar',
'>!@pymod_do_main(prep_nacl_sdk --inputs --tool pnacl)',
],
'outputs': ['<(pnacl_dir)/stamp.prep'],
'action': [
'python',
'<(DEPTH)/native_client/build/prep_nacl_sdk.py',
'--tool', 'pnacl',
'--path', '<(pnacl_dir)',
],
},
]
}],
]
},
],
'conditions': [
['target_arch=="ia32" or target_arch=="x64"', {
'targets' : [
{
'target_name': 'crt_init_64',
'type': 'none',
'dependencies': [
'untar_toolchains',
'prep_nacl_sdk'
],
'variables': {
'nlib_target': 'crti.o',
'windows_asm_rule': 0,
'build_glibc': 0,
'build_newlib': 1,
'build_irt': 0,
'enable_x86_32': 0,
'extra_args': [
'--compile',
'--no-suffix',
'--strip=_x86_64'
],
},
'sources': [
'src/untrusted/stubs/crti_x86_64.S',
]
},
{
'target_name': 'crt_fini_64',
'type': 'none',
'dependencies': [
'untar_toolchains',
'prep_nacl_sdk'
],
'variables': {
'nlib_target': 'crtn.o',
'windows_asm_rule': 0,
'build_glibc': 0,
'build_newlib': 1,
'build_irt': 0,
'enable_x86_32': 0,
'extra_args': [
'--compile',
'--no-suffix',
'--strip=_x86_64'
],
},
'sources': [
'src/untrusted/stubs/crtn_x86_64.S'
],
}
],
}],
['target_arch=="ia32" or target_arch=="x64"', {
'targets' : [
{
'target_name': 'crt_init_32',
'type': 'none',
'dependencies': [
'untar_toolchains',
'prep_nacl_sdk'
],
'variables': {
'nlib_target': 'crti.o',
'windows_asm_rule': 0,
'build_glibc': 0,
'build_newlib': 1,
'build_irt': 1,
'enable_x86_64': 0,
'extra_args': [
'--compile',
'--no-suffix',
'--strip=_x86_32'
],
},
'sources': [
'src/untrusted/stubs/crti_x86_32.S',
],
},
{
'target_name': 'crt_fini_32',
'type': 'none',
'dependencies': [
'untar_toolchains',
'prep_nacl_sdk'
],
'variables': {
'nlib_target': 'crtn.o',
'windows_asm_rule': 0,
'build_glibc': 0,
'build_newlib': 1,
'build_irt': 1,
'enable_x86_64': 0,
'extra_args': [
'--compile',
'--no-suffix',
'--strip=_x86_32'
],
},
'sources': [
'src/untrusted/stubs/crtn_x86_32.S'
],
}
],
}],
['target_arch=="arm"', {
'targets' : [
{
'target_name': 'crt_init_arm',
'type': 'none',
'dependencies': [
'untar_toolchains',
'prep_nacl_sdk'
],
'variables': {
'nlib_target': 'crti.o',
'windows_asm_rule': 0,
'build_glibc': 0,
'build_newlib': 1,
'build_irt': 1,
'extra_args': [
'--compile',
'--no-suffix',
'--strip=_arm'
],
},
'sources': [
'src/untrusted/stubs/crti_arm.S',
],
},
{
'target_name': 'crt_fini_arm',
'type': 'none',
'dependencies': [
'untar_toolchains',
'prep_nacl_sdk'
],
'variables': {
'nlib_target': 'crtn.o',
'windows_asm_rule': 0,
'build_glibc': 0,
'build_newlib': 1,
'build_irt': 1,
'extra_args': [
'--compile',
'--no-suffix',
'--strip=_arm'
],
},
'sources': [
'src/untrusted/stubs/crtn_arm.S'
],
}
],
}],
],
}