blob: 1a9dcbd19b6a2d7c81b8e3a7cb69002d1a46c324 [file]
# 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.
{
'variables': {
'variables': {
# Enable -Werror by default, but put it in a variable so it can
# be optionally disabled.
'werror%': '-Werror',
'conditions': [
['"<(target_arch)"=="arm"', {
# Settings for the newer GCC versions currently used only on ARM.
'NACL_RODATA_FLAG%': '-Trodata-segment',
}, {
# Settings for the older GCC version used on x86_32 and x86_64.
'NACL_RODATA_FLAG%': '--build-id,--section-start,.note.gnu.build-id',
}]
],
# 1 to use goma.
'use_goma%': 0,
},
# See native_client/Sconstruct for more details.
# Expected address for beginning of data in for the IRT.
'NACL_IRT_DATA_START': '0x3ef00000',
# Expected address for beginning of code in for the IRT.
'NACL_IRT_TEXT_START': '0x0fa00000',
# Flag to pass to linker to set start of RODATA segment.
'NACL_RODATA_FLAG%': '<(NACL_RODATA_FLAG)',
# Default C compiler defines.
'nacl_default_defines': [
'__linux__',
'__STDC_LIMIT_MACROS=1',
'__STDC_FORMAT_MACROS=1',
'_GNU_SOURCE=1',
'_BSD_SOURCE=1',
'_POSIX_C_SOURCE=199506',
'_XOPEN_SOURCE=600',
'DYNAMIC_ANNOTATIONS_ENABLED=1',
'DYNAMIC_ANNOTATIONS_PREFIX=NACL_',
],
'nacl_default_compile_flags': [
#'-std=gnu99', Added by build_nexe
'-O2',
'-g',
'-Wall',
'-fdiagnostics-show-option',
'<(werror)',
],
# The flag gomadir is one of the flag to enable goma on build_nexe.py.
# It should be set only if use_goma is true.
'conditions': [
['use_goma==0', {
'gomadir%': '',
}],
],
},
'conditions': [
['target_arch=="ia32" or target_arch=="x64"', {
# Common defaults for all x86 nacl-gcc targets
'target_defaults': {
'conditions': [
['OS=="win"', {
'variables': {
'nacl_glibc_tc_root': '<(DEPTH)/native_client/toolchain/win_x86',
},
}],
['OS=="mac"', {
'variables': {
'nacl_glibc_tc_root': '<(DEPTH)/native_client/toolchain/mac_x86',
},
}],
['OS=="linux"', {
'variables': {
'nacl_glibc_tc_root': '<(DEPTH)/native_client/toolchain/linux_x86',
},
}],
],
'defines': [],
'sources': [],
'compile_flags': [],
'link_flags': [],
'include_dirs': [],
'variables': {
'newlib_tls_flags': [ '-mtls-use-call' ],
'nexe_target': '',
'nlib_target': '',
'nso_target': '',
'build_newlib': 0,
'build_glibc': 0,
'build_irt': 0,
'disable_glibc%': 0,
'extra_args': [],
'enable_x86_32': 1,
'enable_x86_64': 1,
'enable_arm': 0,
'tc_lib_dir_newlib32': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32',
'tc_lib_dir_newlib64': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64',
'tc_lib_dir_glibc32': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32',
'tc_lib_dir_glibc64': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64',
'tc_lib_dir_irt32': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/lib32',
'tc_lib_dir_irt64': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/lib64',
'tc_include_dir_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/include',
'tc_include_dir_glibc': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/include',
'extra_deps': [],
'extra_deps_newlib64': [],
'extra_deps_newlib32': [],
'extra_deps_glibc64': [],
'extra_deps_glibc32': [],
'include_dirs': ['<(DEPTH)'],
'defines': [
'<@(nacl_default_defines)',
'NACL_BUILD_ARCH=x86',
],
'sources': [],
'link_flags': [],
'get_sources': [
'scan_sources',
# This is needed to open the .c filenames, which are given
# relative to the .gyp file.
'-I.',
# This is needed to open the .h filenames, which are given
# relative to the native_client directory's parent.
'-I<(DEPTH)',
],
},
},
}],
['target_arch=="arm"', {
# Common defaults for all ARM nacl-gcc targets
'target_defaults': {
'defines': [],
'sources': [],
'compile_flags': [],
'link_flags': [],
'include_dirs': [],
'variables': {
'newlib_tls_flags': [ '-mtp=soft' ],
'nexe_target': '',
'nlib_target': '',
'nso_target': '',
'force_arm_pnacl': 0,
'build_newlib': 0,
'build_glibc': 0,
'build_irt': 0,
'disable_glibc%': 1,
'extra_args': [],
'enable_x86_32': 0,
'enable_x86_64': 0,
'enable_arm': 1,
'extra_deps': [],
'extra_deps_newlib_arm': [],
'native_sources': [],
'tc_lib_dir_newlib_arm': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm',
'tc_lib_dir_irt_arm': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/libarm',
'tc_include_dir_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/include',
'include_dirs': ['<(DEPTH)'],
'defines': [
'<@(nacl_default_defines)',
'NACL_BUILD_ARCH=arm',
],
'sources': [],
'link_flags': [],
'get_sources': [
'scan_sources',
# This is needed to open the .c filenames, which are given
# relative to the .gyp file.
'-I.',
# This is needed to open the .h filenames, which are given
# relative to the native_client directory's parent.
'-I<(DEPTH)',
],
},
},
}],
['target_arch=="mipsel"', {
# Common defaults for all mips pnacl-clang targets
'target_defaults': {
'defines': [],
'sources': [],
'compile_flags': [],
'link_flags': [],
'include_dirs': [],
'variables': {
'newlib_tls_flags': [],
'nexe_target': '',
'nlib_target': '',
'nso_target': '',
'build_newlib': 0,
'build_glibc': 0,
'build_irt': 0,
'disable_glibc%': 1,
'extra_args': [],
'enable_x86_32': 0,
'enable_x86_64': 0,
'enable_arm': 0,
'extra_deps': [],
'extra_deps_newlib_mips': [],
'native_sources': [],
'tc_lib_dir_newlib_mips': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libmips',
'tc_lib_dir_irt_mips': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/libmips',
'tc_include_dir_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/include',
'include_dirs': ['<(DEPTH)'],
'defines': [
'<@(nacl_default_defines)',
'NACL_BUILD_ARCH=mips',
],
'sources': [],
'link_flags': [],
'get_sources': [
'scan_sources',
# This is needed to open the .c filenames, which are given
# relative to the .gyp file.
'-I.',
# This is needed to open the .h filenames, which are given
# relative to the native_client directory's parent.
'-I<(DEPTH)',
],
},
},
}],
['target_arch=="ia32" or target_arch=="x64"', {
'target_defaults': {
# x86-64 newlib nexe action
'target_conditions': [
['nexe_target!="" and build_newlib!=0 and enable_x86_64!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib64%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x64.nexe',
'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib x86-64 nexe',
'variables': {
'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib64)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib64)',
'^(source_list_newlib64)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib64)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-64',
'--build', 'newlib_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_newlib64)',
'--objdir', '>(objdir_newlib64)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_newlib64) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib64)',
],
},
],
}],
# x86-64 newlib library action
['nlib_target!="" and build_newlib!=0 and enable_x86_64!=0', {
'variables': {
'tool_name': 'newlib',
'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
'out_newlib64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nlib_target)',
},
'actions': [
{
'action_name': 'build newlib x86-64 nlib',
'variables': {
'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib64)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib64)',
'^(source_list_newlib64)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib64)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-64',
'--build', 'newlib_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_newlib64)',
'--objdir', '>(objdir_newlib64)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_newlib64) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib64)',
],
},
],
}],
# x86-64 IRT nexe action
['nexe_target!="" and build_irt!=0 and enable_x86_64!=0', {
'variables': {
'tool_name': 'irt',
'out_newlib64%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x64.nexe',
'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
},
'actions': [
{
'action_name': 'build IRT x86-64 nexe',
'variables': {
'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib64)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib64)',
'^(source_list_newlib64)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib64)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-64',
'--build', 'newlib_nexe_pnacl',
'--root', '<(DEPTH)',
'--name', '>(out_newlib64)',
'--objdir', '>(objdir_newlib64)',
'--config-name', '<(CONFIGURATION_NAME)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=--target=x86_64-nacl -stdlib=libstdc++ ^(compile_flags) >(_compile_flags) -gline-tables-only ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=--target=x86_64-nacl -stdlib=libstdc++ -arch x86-64 --pnacl-allow-translate --pnacl-allow-native -Wt,-mtls-use-call -Wn,-Trodata-segment=<(NACL_IRT_DATA_START) -Wn,-Ttext-segment=<(NACL_IRT_TEXT_START) -B>(tc_lib_dir_irt64) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib64)',
],
},
],
}],
# x86-64 IRT library action
['nlib_target!="" and build_irt!=0 and enable_x86_64!=0', {
'variables': {
'tool_name': 'irt',
'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
'out_newlib64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nlib_target)',
},
'actions': [
{
'action_name': 'build irt x86-64 nlib',
'variables': {
'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib64)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib64)',
'^(source_list_newlib64)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib64)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-64',
'--build', 'newlib_nlib_pnacl',
'--root', '<(DEPTH)',
'--name', '>(out_newlib64)',
'--objdir', '>(objdir_newlib64)',
'--config-name', '<(CONFIGURATION_NAME)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=--target=x86_64-nacl -stdlib=libstdc++ ^(compile_flags) >(_compile_flags) -gline-tables-only ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=--target=x86_64-nacl -stdlib=libstdc++ -B>(tc_lib_dir_irt64) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib64)',
],
},
],
}],
# x86-32 newlib nexe action
['nexe_target!="" and build_newlib!=0 and enable_x86_32!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib32%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x32.nexe',
'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib x86-32 nexe',
'variables': {
'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib32)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib32)',
'^(source_list_newlib32)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib32)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-32',
'--build', 'newlib_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_newlib32)',
'--objdir', '>(objdir_newlib32)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-m32 -B>(tc_lib_dir_newlib32) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib32)',
],
},
],
}],
# x86-32 newlib library action
['nlib_target!="" and build_newlib!=0 and enable_x86_32!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nlib_target)',
'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib x86-32 nlib',
'variables': {
'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib32)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib32)',
'^(source_list_newlib32)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib32)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-32',
'--build', 'newlib_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_newlib32)',
'--objdir', '>(objdir_newlib32)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-m32 -B>(tc_lib_dir_newlib32) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib32)',
],
},
],
}],
# x86-32 IRT nexe build
['nexe_target!="" and build_irt!=0 and enable_x86_32!=0', {
'variables': {
'tool_name': 'irt',
'out_newlib32%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x32.nexe',
'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
},
'actions': [
{
'action_name': 'build IRT x86-32 nexe',
'variables': {
'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib32)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib32)',
'^(source_list_newlib32)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib32)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-32',
'--build', 'newlib_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_newlib32)',
'--objdir', '>(objdir_newlib32)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m32 ^(newlib_tls_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-m32 -B>(tc_lib_dir_irt32) -Wl,-Trodata-segment=<(NACL_IRT_DATA_START) -Wl,-Ttext-segment=<(NACL_IRT_TEXT_START) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib32)',
],
},
],
}],
# x86-32 IRT library build
['nlib_target!="" and build_irt!=0 and enable_x86_32!=0', {
'variables': {
'tool_name': 'irt',
'out_newlib32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nlib_target)',
'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
},
'actions': [
{
'action_name': 'build IRT x86-32 nlib',
'variables': {
'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib32)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib32)',
'^(source_list_newlib32)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_newlib/stamp.prep',
],
'outputs': ['>(out_newlib32)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-32',
'--build', 'newlib_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_newlib32)',
'--objdir', '>(objdir_newlib32)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m32 ^(newlib_tls_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-m32 -B>(tc_lib_dir_irt32) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib32)',
],
},
],
}],
],
},
}], # end x86 gcc nexe/nlib actions
['target_arch=="arm"', {
'target_defaults': {
'target_conditions': [
# arm newlib nexe action
['force_arm_pnacl==0 and nexe_target!="" and build_newlib!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib_arm%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_arm.nexe',
'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib arm nexe',
'variables': {
'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_arm)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_arm)',
'^(source_list_newlib_arm)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_arm_newlib/stamp.prep',
],
'outputs': ['>(out_newlib_arm)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'arm',
'--build', 'newlib_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_arm)',
'--objdir', '>(objdir_newlib_arm)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_newlib_arm) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_arm)',
],
},
],
}],
# arm newlib library action
['force_arm_pnacl==0 and nlib_target!="" and build_newlib!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib_arm%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libarm/>(nlib_target)',
'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib arm nlib',
'variables': {
'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_arm)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_arm)',
'^(source_list_newlib_arm)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_arm_newlib/stamp.prep',
],
'outputs': ['>(out_newlib_arm)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'arm',
'--build', 'newlib_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_arm)',
'--objdir', '>(objdir_newlib_arm)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_newlib_arm) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_arm)',
],
},
],
}],
# arm irt nexe action
['force_arm_pnacl==0 and nexe_target!="" and build_irt!=0', {
'variables': {
'tool_name': 'irt',
'out_newlib_arm%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_arm.nexe',
'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
},
'actions': [
{
'action_name': 'build IRT arm nexe',
'variables': {
'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_arm)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_arm)',
'^(source_list_newlib_arm)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_arm_newlib/stamp.prep',
],
'outputs': ['>(out_newlib_arm)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'arm',
'--build', 'newlib_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_arm)',
'--objdir', '>(objdir_newlib_arm)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(newlib_tls_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_irt_arm) -Wl,-Trodata-segment=<(NACL_IRT_DATA_START) -Wl,-Ttext-segment=<(NACL_IRT_TEXT_START) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_arm)',
],
},
],
}],
# arm IRT library action
['force_arm_pnacl==0 and nlib_target!="" and build_irt!=0', {
'variables': {
'tool_name': 'irt',
'out_newlib_arm%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libarm/>(nlib_target)',
'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
},
'actions': [
{
'action_name': 'build IRT arm nlib',
'variables': {
'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_arm)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_arm)',
'^(source_list_newlib_arm)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_arm_newlib/stamp.prep',
],
'outputs': ['>(out_newlib_arm)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'arm',
'--build', 'newlib_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_arm)',
'--objdir', '>(objdir_newlib_arm)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(newlib_tls_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_irt_arm) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_arm)',
],
},
],
}],
# pnacl ARM library build using biased bitcode. This is currently
# used to build the IRT shim. TODO(dschuff): see if this can be
# further simplified, perhaps using re-using the plib build below
['force_arm_pnacl==1 and nlib_target!="" and build_newlib!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib_arm%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libarm/>(nlib_target)',
'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib arm nlib (via pnacl)',
'variables': {
'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_arm)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_arm)',
'^(source_list_newlib_arm)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl/stamp.prep'
],
'outputs': ['>(out_newlib_arm)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'arm',
'--build', 'newlib_nlib_pnacl',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_arm)',
'--objdir', '>(objdir_newlib_arm)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=--target=armv7-unknown-nacl-gnueabi -mfloat-abi=hard ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_newlib_arm) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_arm)',
],
},
],
}],
], # end target_conditions for arm newlib (nexe/nlib, force_arm_pnacl)
},
}], # end target_arch = arm
['target_arch=="mipsel"', {
'target_defaults': {
'target_conditions': [
# mips newlib nexe action
['nexe_target!="" and build_newlib!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib_mips%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_mips.nexe',
'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib mips nexe',
'variables': {
'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_mips)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_mips)',
'^(source_list_newlib_mips)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl/stamp.prep',
],
'outputs': ['>(out_newlib_mips)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'mips',
'--build', 'newlib_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_mips)',
'--objdir', '>(objdir_newlib_mips)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags= ^(pnacl_compile_flags) >(_pnacl_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_newlib_mips) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_mips)',
],
},
],
}],
# mips newlib library action
['nlib_target!="" and build_newlib!=0', {
'variables': {
'tool_name': 'newlib',
'out_newlib_mips%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libmips/>(nlib_target)',
'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
},
'actions': [
{
'action_name': 'build newlib mips nlib',
'variables': {
'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_mips)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_mips)',
'^(source_list_newlib_mips)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl/stamp.prep',
],
'outputs': ['>(out_newlib_mips)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'mips',
'--build', 'newlib_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_mips)',
'--objdir', '>(objdir_newlib_mips)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags= ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_newlib_mips) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_mips)',
],
},
],
}],
# mips irt nexe action
['nexe_target!="" and build_irt!=0', {
'variables': {
'tool_name': 'irt',
'out_newlib_mips%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_mips.nexe',
'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
},
'actions': [
{
'action_name': 'build IRT mips nexe',
'variables': {
'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_mips)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_mips)',
'^(source_list_newlib_mips)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl/stamp.prep',
],
'outputs': ['>(out_newlib_mips)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'mips',
'--build', 'newlib_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_mips)',
'--objdir', '>(objdir_newlib_mips)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags= ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags= -arch mips --pnacl-allow-translate --pnacl-allow-native -Wt,-mtls-use-call --pnacl-disable-abi-check -Wl,-Trodata-segment=<(NACL_IRT_DATA_START) -Wl,-Ttext-segment=<(NACL_IRT_TEXT_START) -B>(tc_lib_dir_irt_mips) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_mips)',
],
},
],
}],
# mips IRT library action
['nlib_target!="" and build_irt!=0', {
'variables': {
'tool_name': 'irt',
'out_newlib_mips%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libmips/>(nlib_target)',
'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
},
'actions': [
{
'action_name': 'build IRT mips nlib',
'variables': {
'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_newlib_mips)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_newlib_mips)',
'^(source_list_newlib_mips)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl/stamp.prep',
],
'outputs': ['>(out_newlib_mips)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'mips',
'--build', 'newlib_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_newlib_mips)',
'--objdir', '>(objdir_newlib_mips)',
'--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags= ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_irt_mips) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_newlib_mips)',
],
},
],
}],
], # end target_conditions for mips newlib
},
}], # end target_arch = mips
['target_arch=="ia32" or target_arch=="x64"', {
'target_defaults': {
# x86-64 glibc nexe action
'target_conditions': [
['nexe_target!="" and build_glibc!=0 and enable_x86_64!=0 and disable_glibc==0', {
'variables': {
'tool_name': 'glibc',
'out_glibc64%': '<(PRODUCT_DIR)/>(nexe_target)_glibc_x64.nexe',
'objdir_glibc64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
},
'actions': [
{
'action_name': 'build glibc x86-64 nexe',
'variables': {
'source_list_glibc64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_glibc64)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_glibc64)',
'^(source_list_glibc64)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc/stamp.prep',
],
'outputs': ['>(out_glibc64)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-64',
'--build', 'glibc_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_glibc64)',
'--objdir', '>(objdir_glibc64)',
'--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_glibc64) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_glibc64)',
],
},
],
}],
# x86-32 glibc nexe action
['nexe_target!="" and build_glibc!=0 and enable_x86_32!=0 and disable_glibc==0', {
'variables': {
'tool_name': 'glibc',
'out_glibc32%': '<(PRODUCT_DIR)/>(nexe_target)_glibc_x32.nexe',
'objdir_glibc32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
},
'actions': [
{
'action_name': 'build glibc x86-32 nexe',
'variables': {
'source_list_glibc32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_glibc32)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_glibc32)',
'^(source_list_glibc32)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc/stamp.prep',
],
'outputs': ['>(out_glibc32)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-32',
'--build', 'glibc_nexe',
'--root', '<(DEPTH)',
'--name', '>(out_glibc32)',
'--objdir', '>(objdir_glibc32)',
'--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-m32 -B>(tc_lib_dir_glibc32) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_glibc32)',
],
},
],
}],
# x86-64 glibc static library action
['nlib_target!="" and build_glibc!=0 and enable_x86_64!=0 and disable_glibc==0', {
'variables': {
'tool_name': 'glibc',
'objdir_glibc64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
'out_glibc64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nlib_target)',
},
'actions': [
{
'action_name': 'build glibc x86-64 nlib',
'variables': {
'source_list_glibc64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_glibc64)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_glibc64)',
'^(source_list_glibc64)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc/stamp.prep',
],
'outputs': ['>(out_glibc64)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-64',
'--build', 'glibc_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_glibc64)',
'--objdir', '>(objdir_glibc64)',
'--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_glibc64) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_glibc64)',
],
},
],
}],
# x86-32 glibc static library action
['nlib_target!="" and build_glibc!=0 and enable_x86_32!=0 and disable_glibc==0', {
'variables': {
'tool_name': 'glibc',
'out_glibc32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nlib_target)',
'objdir_glibc32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
},
'actions': [
{
'action_name': 'build glibc x86-32 nlib',
'variables': {
'source_list_glibc32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_glibc32)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_glibc32)',
'^(source_list_glibc32)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc/stamp.prep',
],
'outputs': ['>(out_glibc32)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'x86-32',
'--build', 'glibc_nlib',
'--root', '<(DEPTH)',
'--name', '>(out_glibc32)',
'--objdir', '>(objdir_glibc32)',
'--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-m32 -B>(tc_lib_dir_glibc32) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_glibc32)',
],
},
],
}],
# x86-64 glibc shared library action
['nso_target!="" and build_glibc!=0 and enable_x86_64!=0 and disable_glibc==0', {
'variables': {
'tool_name': 'glibc',
'objdir_glibc64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64-so/>(_target_name)',
'out_glibc64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nso_target)',
},
'actions': [
{
'action_name': 'build glibc x86-64 nso',
'variables': {
'source_list_glibc64%': '^|(<(tool_name)-x86-64-so.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_glibc64)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_glibc64)',
'^(source_list_glibc64)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc/stamp.prep',
],
'outputs': ['>(out_glibc64)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'>@(extra_args)',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'--arch', 'x86-64',
'--build', 'glibc_nso',
'--root', '<(DEPTH)',
'--name', '>(out_glibc64)',
'--objdir', '>(objdir_glibc64)',
'--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m64 -fPIC ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_glibc64) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_glibc64)',
],
},
],
}],
# x86-32 glibc shared library action
['nso_target!="" and build_glibc!=0 and enable_x86_32!=0 and disable_glibc==0', {
'variables': {
'tool_name': 'glibc',
'out_glibc32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nso_target)',
'objdir_glibc32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32-so/>(_target_name)',
},
'actions': [
{
'action_name': 'build glibc x86-32 nso',
'variables': {
'source_list_glibc32%': '^|(<(tool_name)-x86-32-so.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_glibc32)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_glibc32)',
'^(source_list_glibc32)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_x86_glibc/stamp.prep',
],
'outputs': ['>(out_glibc32)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'>@(extra_args)',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'--arch', 'x86-32',
'--build', 'glibc_nso',
'--root', '<(DEPTH)',
'--name', '>(out_glibc32)',
'--objdir', '>(objdir_glibc32)',
'--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
'--compile_flags=-m32 -fPIC ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-m32 -B>(tc_lib_dir_glibc32) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_glibc32)',
],
},
],
}],
], # end target_conditions for glibc (nexe/nlib/nso, x86-32/64)
},
}], # end target_arch == ia32 or x64
],
# Common defaults for pnacl targets
'target_defaults': {
'gcc_compile_flags': [],
'pnacl_compile_flags': [],
'variables': {
'disable_pnacl%': 0,
'build_pnacl_newlib': 0,
'nlib_target': '',
'extra_deps_pnacl_newlib': [],
'tc_lib_dir_pnacl_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib/lib',
'tc_lib_dir_pnacl_translate' :'<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_translate',
'tc_include_dir_pnacl_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib/include',
'compile_flags': [
'<@(nacl_default_compile_flags)',
],
'gcc_compile_flags': [
'-fomit-frame-pointer',
# A debugger should be able to unwind IRT call frames. As the IRT is
# compiled with high level of optimizations and without debug info,
# compiler is requested to generate unwind tables explicitly. This
# is the default behavior on x86-64 and when compiling C++ with
# exceptions enabled, the change is for the benefit of x86-32 C.
# These are only required for the IRT but are here for all
# nacl-gcc-compiled binaries because the IRT depends on other libs
'-fasynchronous-unwind-tables',
],
'pnacl_compile_flags': [
'-Wno-extra-semi',
'-Wno-unused-private-field',
'-Wno-char-subscripts',
'-Wno-unused-function',
],
},
'target_conditions': [
# pnacl actions for building pexes and translating them
['nexe_target!="" and disable_pnacl==0 and build_pnacl_newlib!=0', {
'variables': {
'out_pnacl_newlib_x86_32_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_x32.nexe',
'out_pnacl_newlib_x86_64_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_x64.nexe',
'out_pnacl_newlib_arm_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_arm.nexe',
'out_pnacl_newlib_mips_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_mips.nexe',
'tool_name': 'pnacl_newlib',
'inst_dir': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib',
'out_pnacl_newlib%': '<(PRODUCT_DIR)/>(nexe_target)_newlib.pexe',
'objdir_pnacl_newlib%': '>(INTERMEDIATE_DIR)/<(tool_name)/>(_target_name)',
'link_flags': [
'-O3',
],
'translate_flags': [],
},
'actions': [
{
'action_name': 'build newlib pexe',
'variables': {
'source_list_pnacl_newlib%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_pnacl_newlib)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_pnacl_newlib)',
'^(source_list_pnacl_newlib)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl/stamp.prep',
],
'outputs': ['>(out_pnacl_newlib)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'pnacl',
'--build', 'newlib_pexe',
'--root', '<(DEPTH)',
'--name', '>(out_pnacl_newlib)',
'--objdir', '>(objdir_pnacl_newlib)',
'--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib/lib ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_pnacl_newlib)',
],
}],
'target_conditions': [
[ 'enable_x86_32!=0', {
'actions': [{
'action_name': 'translate newlib pexe to x86-32 nexe',
'msvs_cygwin_shell': 0,
'description': 'translating >(out_pnacl_newlib_x86_32_nexe)',
'inputs': [
# Having this in the input somehow causes devenv warnings
# when building pnacl browser tests.
# '<(DEPTH)/native_client/build/build_nexe.py',
'>(out_pnacl_newlib)',
],
'outputs': [ '>(out_pnacl_newlib_x86_32_nexe)' ],
'action' : [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'--arch', 'x86-32',
'--build', 'newlib_translate',
'--root', '<(DEPTH)',
'--name', '>(out_pnacl_newlib_x86_32_nexe)',
'--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-x86-32',
'>(out_pnacl_newlib)',
],
}],
}],
[ 'enable_x86_64!=0', {
'actions': [{
'action_name': 'translate newlib pexe to x86-64 nexe',
'msvs_cygwin_shell': 0,
'description': 'translating >(out_pnacl_newlib_x86_64_nexe)',
'inputs': [
# Having this in the input somehow causes devenv warnings
# when building pnacl browser tests.
# '<(DEPTH)/native_client/build/build_nexe.py',
'>(out_pnacl_newlib)',
],
'outputs': [ '>(out_pnacl_newlib_x86_64_nexe)' ],
'action' : [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'--arch', 'x86-64',
'--build', 'newlib_translate',
'--root', '<(DEPTH)',
'--name', '>(out_pnacl_newlib_x86_64_nexe)',
'--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-x86-64',
'>(out_pnacl_newlib)',
],
}],
}],
[ 'enable_arm!=0', {
'actions': [{
'action_name': 'translate newlib pexe to ARM nexe',
'msvs_cygwin_shell': 0,
'description': 'translating >(out_pnacl_newlib_arm_nexe)',
'inputs': [
# Having this in the input somehow causes devenv warnings
# when building pnacl browser tests.
# '<(DEPTH)/native_client/build/build_nexe.py',
'>(out_pnacl_newlib)',
],
'outputs': [ '>(out_pnacl_newlib_arm_nexe)' ],
'action' : [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'--arch', 'arm',
'--build', 'newlib_translate',
'--root', '<(DEPTH)',
'--name', '>(out_pnacl_newlib_arm_nexe)',
'--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-arm',
'>(out_pnacl_newlib)',
],
}],
}],
],
}],
# pnacl action for building libraries
['nlib_target!="" and disable_pnacl==0 and build_pnacl_newlib!=0', {
'variables': {
'tool_name': 'pnacl_newlib',
'objdir_pnacl_newlib%': '>(INTERMEDIATE_DIR)/<(tool_name)-pnacl/>(_target_name)',
'out_pnacl_newlib%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib/>(nlib_target)',
},
'actions': [
{
'action_name': 'build newlib plib',
'variables': {
'source_list_pnacl_newlib%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
},
'msvs_cygwin_shell': 0,
'description': 'building >(out_pnacl_newlib)',
'inputs': [
'<(DEPTH)/native_client/build/build_nexe.py',
'>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
'>@(extra_deps)',
'>@(extra_deps_pnacl_newlib)',
'^(source_list_pnacl_newlib)',
'<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/<(OS)_pnacl/stamp.prep',
],
'outputs': ['>(out_pnacl_newlib)'],
'action': [
'python',
'<(DEPTH)/native_client/build/build_nexe.py',
'-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/toolchain/',
'>@(extra_args)',
'--arch', 'pnacl',
'--build', 'newlib_plib',
'--root', '<(DEPTH)',
'--name', '>(out_pnacl_newlib)',
'--objdir', '>(objdir_pnacl_newlib)',
'--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
'--compile_flags=^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
'--gomadir', '<(gomadir)',
'--defines=^(defines) >(_defines)',
'--link_flags=-B>(tc_lib_dir_pnacl_newlib) ^(link_flags) >(_link_flags)',
'--source-list=^(source_list_pnacl_newlib)',
],
},
],
}],
], # end target_conditions for pnacl pexe/plib
},
}