1 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
8 # Enable -Werror by default, but put it in a variable so it can
9 # be optionally disabled.
14 # Default C compiler defines.
15 'nacl_default_defines': [
17 '__STDC_LIMIT_MACROS=1',
18 '__STDC_FORMAT_MACROS=1',
21 '_POSIX_C_SOURCE=199506',
23 'DYNAMIC_ANNOTATIONS_ENABLED=1',
24 'DYNAMIC_ANNOTATIONS_PREFIX=NACL_',
26 'nacl_default_compile_flags': [
27 #'-std=gnu99', Added by build_nexe
31 '-fdiagnostics-show-option',
34 # The flag gomadir is one of the flag to enable goma on build_nexe.py.
35 # It should be set only if use_goma is true.
41 'TOOLCHAIN_OS': 'linux',
43 'TOOLCHAIN_OS': '<(OS)',
48 ['target_arch=="ia32" or target_arch=="x64"', {
49 # Common defaults for all x86 nacl-gcc targets
70 'enable_x86_32_nonsfi': 0,
71 'nacl_glibc_tc_root': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc',
72 'nacl_newlib_tc_root': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib',
73 'tc_lib_dir_newlib32': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32',
74 'tc_lib_dir_newlib64': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64',
75 'tc_lib_dir_glibc32': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32',
76 'tc_lib_dir_glibc64': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64',
77 'tc_lib_dir_irt32': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/lib32',
78 'tc_lib_dir_irt64': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/lib64',
79 'tc_include_dir_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/include',
80 'tc_include_dir_glibc': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/include',
82 'extra_deps_newlib64': [],
83 'extra_deps_newlib32': [],
84 'extra_deps_glibc64': [],
85 'extra_deps_glibc32': [],
86 'include_dirs': ['<(DEPTH)'],
88 '<@(nacl_default_defines)',
89 'NACL_BUILD_ARCH=x86',
95 # This is needed to open the .c filenames, which are given
96 # relative to the .gyp file.
98 # This is needed to open the .h filenames, which are given
99 # relative to the native_client directory's parent.
105 ['target_arch=="arm"', {
106 # Common defaults for all ARM nacl-gcc targets
122 'disable_bionic%': 1,
128 'enable_x86_32_nonsfi': 0,
130 'extra_deps_newlib_arm': [],
131 'extra_deps_bionic_arm': [],
132 'native_sources': [],
133 'nacl_glibc_tc_root': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_glibc',
134 'nacl_newlib_tc_root': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib',
135 'tc_lib_dir_bionic_arm': '<(SHARED_INTERMEDIATE_DIR)/tc_bionic/libarm',
136 'tc_lib_dir_newlib_arm': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm',
137 'tc_lib_dir_irt_arm': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/libarm',
138 'tc_include_dir_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/include',
139 'tc_include_dir_bionic': '<(SHARED_INTERMEDIATE_DIR)/tc_bionic/include',
140 'include_dirs': ['<(DEPTH)'],
142 '<@(nacl_default_defines)',
143 'NACL_BUILD_ARCH=arm',
149 # This is needed to open the .c filenames, which are given
150 # relative to the .gyp file.
152 # This is needed to open the .h filenames, which are given
153 # relative to the native_client directory's parent.
159 ['target_arch=="mipsel"', {
160 # Common defaults for all mips pnacl-clang targets
175 'disable_bionic%': 1,
181 'enable_x86_32_nonsfi': 0,
183 'extra_deps_newlib_mips': [],
184 'native_sources': [],
185 'nacl_glibc_tc_root': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_mips_glibc',
186 'nacl_newlib_tc_root': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_mips_newlib',
187 'tc_lib_dir_newlib_mips': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libmips',
188 'tc_lib_dir_irt_mips': '<(SHARED_INTERMEDIATE_DIR)/tc_irt/libmips',
189 'tc_include_dir_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/include',
190 'include_dirs': ['<(DEPTH)'],
192 '<@(nacl_default_defines)',
193 'NACL_BUILD_ARCH=mips',
199 # This is needed to open the .c filenames, which are given
200 # relative to the .gyp file.
202 # This is needed to open the .h filenames, which are given
203 # relative to the native_client directory's parent.
209 ['target_arch=="ia32" or target_arch=="x64"', {
211 # x86-64 newlib nexe action
212 'target_conditions': [
213 ['nexe_target!="" and build_newlib!=0 and enable_x86_64!=0', {
215 'tool_name': 'newlib',
216 'out_newlib64%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x64.nexe',
217 'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
221 'action_name': 'build newlib x86-64 nexe',
223 'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
225 'msvs_cygwin_shell': 0,
226 'description': 'building >(out_newlib64)',
228 '<(DEPTH)/native_client/build/build_nexe.py',
229 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
231 '>@(extra_deps_newlib64)',
232 '^(source_list_newlib64)',
233 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
235 'outputs': ['>(out_newlib64)'],
238 '<(DEPTH)/native_client/build/build_nexe.py',
239 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
242 '--build', 'newlib_nexe',
243 '--root', '<(DEPTH)',
244 '--name', '>(out_newlib64)',
245 '--objdir', '>(objdir_newlib64)',
246 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
247 '--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
248 '--gomadir', '<(gomadir)',
249 '--defines=^(defines) >(_defines)',
250 '--link_flags=-B>(tc_lib_dir_newlib64) ^(link_flags) >(_link_flags)',
251 '--source-list=^(source_list_newlib64)',
256 # x86-64 newlib library action
257 ['nlib_target!="" and build_newlib!=0 and enable_x86_64!=0', {
259 'tool_name': 'newlib',
260 'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
261 'out_newlib64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nlib_target)',
265 'action_name': 'build newlib x86-64 nlib',
267 'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
269 'msvs_cygwin_shell': 0,
270 'description': 'building >(out_newlib64)',
272 '<(DEPTH)/native_client/build/build_nexe.py',
273 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
275 '>@(extra_deps_newlib64)',
276 '^(source_list_newlib64)',
277 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
279 'outputs': ['>(out_newlib64)'],
282 '<(DEPTH)/native_client/build/build_nexe.py',
283 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
286 '--build', 'newlib_nlib',
287 '--root', '<(DEPTH)',
288 '--name', '>(out_newlib64)',
289 '--objdir', '>(objdir_newlib64)',
290 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
291 '--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
292 '--gomadir', '<(gomadir)',
293 '--defines=^(defines) >(_defines)',
294 '--link_flags=-B>(tc_lib_dir_newlib64) ^(link_flags) >(_link_flags)',
295 '--source-list=^(source_list_newlib64)',
300 # x86-64 IRT nexe action
301 ['nexe_target!="" and build_irt!=0 and enable_x86_64!=0', {
304 'out_newlib64%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x64.nexe',
305 'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
309 'action_name': 'build IRT x86-64 nexe',
311 'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
313 'msvs_cygwin_shell': 0,
314 'description': 'building >(out_newlib64)',
316 '<(DEPTH)/native_client/build/build_nexe.py',
317 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
319 '>@(extra_deps_newlib64)',
320 '^(source_list_newlib64)',
321 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
322 '<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
324 'outputs': ['>(out_newlib64)'],
327 '<(DEPTH)/native_client/build/build_nexe.py',
328 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
331 '--build', 'newlib_nexe_pnacl',
332 '--root', '<(DEPTH)',
333 '--name', '>(out_newlib64)',
334 '--objdir', '>(objdir_newlib64)',
335 '--config-name', '<(CONFIGURATION_NAME)',
336 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
337 '--compile_flags=--target=x86_64-unknown-nacl -stdlib=libstdc++ ^(compile_flags) >(_compile_flags) -gline-tables-only ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
338 '--gomadir', '<(gomadir)',
339 '--defines=^(defines) >(_defines)',
340 '--link_flags=--target=x86_64-unknown-nacl -stdlib=libstdc++ -arch x86-64 --pnacl-allow-translate --pnacl-allow-native -B>(tc_lib_dir_irt64) ^(pnacl_irt_link_flags) ^(link_flags) >(_link_flags)',
341 '--source-list=^(source_list_newlib64)',
342 '--tls-edit=<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
348 # x86-64 IRT library action
349 ['nlib_target!="" and build_irt!=0 and enable_x86_64!=0', {
352 'objdir_newlib64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
353 'out_newlib64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nlib_target)',
357 'action_name': 'build irt x86-64 nlib',
359 'source_list_newlib64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
361 'msvs_cygwin_shell': 0,
362 'description': 'building >(out_newlib64)',
364 '<(DEPTH)/native_client/build/build_nexe.py',
365 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
367 '>@(extra_deps_newlib64)',
368 '^(source_list_newlib64)',
369 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
371 'outputs': ['>(out_newlib64)'],
374 '<(DEPTH)/native_client/build/build_nexe.py',
375 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
378 '--build', 'newlib_nlib_pnacl',
379 '--root', '<(DEPTH)',
380 '--name', '>(out_newlib64)',
381 '--objdir', '>(objdir_newlib64)',
382 '--config-name', '<(CONFIGURATION_NAME)',
383 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
384 '--compile_flags=--target=x86_64-unknown-nacl -stdlib=libstdc++ ^(compile_flags) >(_compile_flags) -gline-tables-only ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
385 '--gomadir', '<(gomadir)',
386 '--defines=^(defines) >(_defines)',
387 '--link_flags=--target=x86_64-unknown-nacl -stdlib=libstdc++ -B>(tc_lib_dir_irt64) ^(pnacl_irt_link_flags) ^(link_flags) >(_link_flags)',
388 '--source-list=^(source_list_newlib64)',
393 # x86-32 newlib nexe action
394 ['nexe_target!="" and build_newlib!=0 and enable_x86_32!=0', {
396 'tool_name': 'newlib',
397 'out_newlib32%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x32.nexe',
398 'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
402 'action_name': 'build newlib x86-32 nexe',
404 'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
406 'msvs_cygwin_shell': 0,
407 'description': 'building >(out_newlib32)',
409 '<(DEPTH)/native_client/build/build_nexe.py',
410 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
412 '>@(extra_deps_newlib32)',
413 '^(source_list_newlib32)',
414 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
416 'outputs': ['>(out_newlib32)'],
419 '<(DEPTH)/native_client/build/build_nexe.py',
420 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
423 '--build', 'newlib_nexe',
424 '--root', '<(DEPTH)',
425 '--name', '>(out_newlib32)',
426 '--objdir', '>(objdir_newlib32)',
427 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
428 '--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
429 '--gomadir', '<(gomadir)',
430 '--defines=^(defines) >(_defines)',
431 '--link_flags=-m32 -B>(tc_lib_dir_newlib32) ^(link_flags) >(_link_flags)',
432 '--source-list=^(source_list_newlib32)',
437 # x86-32 newlib library action
438 ['nlib_target!="" and build_newlib!=0 and enable_x86_32!=0', {
440 'tool_name': 'newlib',
441 'out_newlib32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nlib_target)',
442 'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
446 'action_name': 'build newlib x86-32 nlib',
448 'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
450 'msvs_cygwin_shell': 0,
451 'description': 'building >(out_newlib32)',
453 '<(DEPTH)/native_client/build/build_nexe.py',
454 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
456 '>@(extra_deps_newlib32)',
457 '^(source_list_newlib32)',
458 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
460 'outputs': ['>(out_newlib32)'],
463 '<(DEPTH)/native_client/build/build_nexe.py',
464 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
467 '--build', 'newlib_nlib',
468 '--root', '<(DEPTH)',
469 '--name', '>(out_newlib32)',
470 '--objdir', '>(objdir_newlib32)',
471 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
472 '--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
473 '--gomadir', '<(gomadir)',
474 '--defines=^(defines) >(_defines)',
475 '--link_flags=-m32 -B>(tc_lib_dir_newlib32) ^(link_flags) >(_link_flags)',
476 '--source-list=^(source_list_newlib32)',
481 # x86-32 IRT nexe build
482 ['nexe_target!="" and build_irt!=0 and enable_x86_32!=0', {
485 'out_newlib32%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_x32.nexe',
486 'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
490 'action_name': 'build IRT x86-32 nexe',
492 'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
494 'msvs_cygwin_shell': 0,
495 'description': 'building >(out_newlib32)',
497 '<(DEPTH)/native_client/build/build_nexe.py',
498 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
500 '>@(extra_deps_newlib32)',
501 '^(source_list_newlib32)',
502 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
503 '<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
505 'outputs': ['>(out_newlib32)'],
508 '<(DEPTH)/native_client/build/build_nexe.py',
509 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
512 '--build', 'newlib_nexe',
513 '--root', '<(DEPTH)',
514 '--name', '>(out_newlib32)',
515 '--objdir', '>(objdir_newlib32)',
516 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
517 '--compile_flags=-m32 ^(gcc_irt_compile_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
518 '--gomadir', '<(gomadir)',
519 '--defines=^(defines) >(_defines)',
520 '--link_flags=-m32 -B>(tc_lib_dir_irt32) ^(gcc_irt_link_flags) ^(link_flags) >(_link_flags)',
521 '--source-list=^(source_list_newlib32)',
522 '--tls-edit=<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
528 # x86-32 IRT library build
529 ['nlib_target!="" and build_irt!=0 and enable_x86_32!=0', {
532 'out_newlib32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nlib_target)',
533 'objdir_newlib32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
537 'action_name': 'build IRT x86-32 nlib',
539 'source_list_newlib32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
541 'msvs_cygwin_shell': 0,
542 'description': 'building >(out_newlib32)',
544 '<(DEPTH)/native_client/build/build_nexe.py',
545 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
547 '>@(extra_deps_newlib32)',
548 '^(source_list_newlib32)',
549 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/stamp.prep',
551 'outputs': ['>(out_newlib32)'],
554 '<(DEPTH)/native_client/build/build_nexe.py',
555 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
558 '--build', 'newlib_nlib',
559 '--root', '<(DEPTH)',
560 '--name', '>(out_newlib32)',
561 '--objdir', '>(objdir_newlib32)',
562 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
563 '--compile_flags=-m32 ^(gcc_irt_compile_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
564 '--gomadir', '<(gomadir)',
565 '--defines=^(defines) >(_defines)',
566 '--link_flags=-m32 -B>(tc_lib_dir_irt32) ^(gcc_irt_link_flags) ^(link_flags) >(_link_flags)',
567 '--source-list=^(source_list_newlib32)',
574 }], # end x86 gcc nexe/nlib actions
575 ['target_arch=="arm"', {
577 'target_conditions': [
578 # arm newlib nexe action
579 ['nexe_target!="" and build_newlib!=0', {
581 'tool_name': 'newlib',
582 'out_newlib_arm%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_arm.nexe',
583 'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
587 'action_name': 'build newlib arm nexe',
589 'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
591 'msvs_cygwin_shell': 0,
592 'description': 'building >(out_newlib_arm)',
594 '<(DEPTH)/native_client/build/build_nexe.py',
595 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
597 '>@(extra_deps_newlib_arm)',
598 '^(source_list_newlib_arm)',
599 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/stamp.prep',
601 'outputs': ['>(out_newlib_arm)'],
604 '<(DEPTH)/native_client/build/build_nexe.py',
605 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
608 '--build', 'newlib_nexe',
609 '--root', '<(DEPTH)',
610 '--name', '>(out_newlib_arm)',
611 '--objdir', '>(objdir_newlib_arm)',
612 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
613 '--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
614 '--gomadir', '<(gomadir)',
615 '--defines=^(defines) >(_defines)',
616 '--link_flags=-B>(tc_lib_dir_newlib_arm) ^(link_flags) >(_link_flags)',
617 '--source-list=^(source_list_newlib_arm)',
622 # arm newlib library action
623 ['nlib_target!="" and build_newlib!=0', {
625 'tool_name': 'newlib',
626 'out_newlib_arm%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libarm/>(nlib_target)',
627 'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
631 'action_name': 'build newlib arm nlib',
633 'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
635 'msvs_cygwin_shell': 0,
636 'description': 'building >(out_newlib_arm)',
638 '<(DEPTH)/native_client/build/build_nexe.py',
639 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
641 '>@(extra_deps_newlib_arm)',
642 '^(source_list_newlib_arm)',
643 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/stamp.prep',
645 'outputs': ['>(out_newlib_arm)'],
648 '<(DEPTH)/native_client/build/build_nexe.py',
649 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
652 '--build', 'newlib_nlib',
653 '--root', '<(DEPTH)',
654 '--name', '>(out_newlib_arm)',
655 '--objdir', '>(objdir_newlib_arm)',
656 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
657 '--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
658 '--gomadir', '<(gomadir)',
659 '--defines=^(defines) >(_defines)',
660 '--link_flags=-B>(tc_lib_dir_newlib_arm) ^(link_flags) >(_link_flags)',
661 '--source-list=^(source_list_newlib_arm)',
666 ['nlib_target!="" and build_bionic!=0 and disable_bionic==0', {
668 'tool_name': 'bionic',
669 'out_bionic_arm%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libarm/>(nlib_target)',
670 'objdir_bionic_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
674 'action_name': 'build bionic arm nlib',
676 'source_list_bionic_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
678 'msvs_cygwin_shell': 0,
679 'description': 'building >(out_bionic_arm)',
681 '<(DEPTH)/native_client/build/build_nexe.py',
682 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
684 '>@(extra_deps_bionic_arm)',
685 '^(source_list_bionic_arm)',
686 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86_nacl_arm/nacl_arm_bionic',
688 'outputs': ['>(out_bionic_arm)'],
691 '<(DEPTH)/native_client/build/build_nexe.py',
692 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
695 '--build', 'bionic_nlib',
696 '--root', '<(DEPTH)',
697 '--name', '>(out_bionic_arm)',
698 '--objdir', '>(objdir_bionic_arm)',
699 '--include-dirs=>(tc_include_dir_bionic) ^(include_dirs) >(_include_dirs)',
700 '--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
701 '--gomadir', '<(gomadir)',
702 '--defines=^(defines) >(_defines)',
703 '--link_flags=-B>(tc_lib_dir_bionic_arm) ^(link_flags) >(_link_flags)',
704 '--source-list=^(source_list_bionic_arm)',
709 # arm irt nexe action
710 ['nexe_target!="" and build_irt!=0', {
713 'out_newlib_arm%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_arm.nexe',
714 'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
718 'action_name': 'build IRT arm nexe',
720 'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
722 'msvs_cygwin_shell': 0,
723 'description': 'building >(out_newlib_arm)',
725 '<(DEPTH)/native_client/build/build_nexe.py',
726 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
728 '>@(extra_deps_newlib_arm)',
729 '^(source_list_newlib_arm)',
730 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/stamp.prep',
731 '<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
733 'outputs': ['>(out_newlib_arm)'],
736 '<(DEPTH)/native_client/build/build_nexe.py',
737 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
740 '--build', 'newlib_nexe',
741 '--root', '<(DEPTH)',
742 '--name', '>(out_newlib_arm)',
743 '--objdir', '>(objdir_newlib_arm)',
744 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
745 '--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(gcc_irt_compile_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
746 '--gomadir', '<(gomadir)',
747 '--defines=^(defines) >(_defines)',
748 '--link_flags=-B>(tc_lib_dir_irt_arm) ^(gcc_irt_link_flags) ^(link_flags) >(_link_flags)',
749 '--source-list=^(source_list_newlib_arm)',
750 '--tls-edit=<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
756 # arm IRT library action
757 ['nlib_target!="" and build_irt!=0', {
760 'out_newlib_arm%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libarm/>(nlib_target)',
761 'objdir_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)-arm/>(_target_name)',
765 'action_name': 'build IRT arm nlib',
767 'source_list_newlib_arm%': '^|(<(tool_name)-arm.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
769 'msvs_cygwin_shell': 0,
770 'description': 'building >(out_newlib_arm)',
772 '<(DEPTH)/native_client/build/build_nexe.py',
773 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
775 '>@(extra_deps_newlib_arm)',
776 '^(source_list_newlib_arm)',
777 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/stamp.prep',
779 'outputs': ['>(out_newlib_arm)'],
782 '<(DEPTH)/native_client/build/build_nexe.py',
783 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
786 '--build', 'newlib_nlib',
787 '--root', '<(DEPTH)',
788 '--name', '>(out_newlib_arm)',
789 '--objdir', '>(objdir_newlib_arm)',
790 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
791 '--compile_flags=-Wno-unused-local-typedefs -Wno-psabi ^(gcc_irt_compile_flags) ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
792 '--gomadir', '<(gomadir)',
793 '--defines=^(defines) >(_defines)',
794 '--link_flags=-B>(tc_lib_dir_irt_arm) ^(gcc_irt_link_flags) ^(link_flags) >(_link_flags)',
795 '--source-list=^(source_list_newlib_arm)',
800 ], # end target_conditions for arm newlib (nexe/nlib)
802 }], # end target_arch = arm
803 ['target_arch=="mipsel"', {
805 'target_conditions': [
806 # mips newlib nexe action
807 ['nexe_target!="" and build_newlib!=0', {
809 'tool_name': 'newlib',
810 'out_newlib_mips%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_mips32.nexe',
811 'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
815 'action_name': 'build newlib mips nexe',
817 'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources) ^(native_sources))',
819 'msvs_cygwin_shell': 0,
820 'description': 'building >(out_newlib_mips)',
822 '<(DEPTH)/native_client/build/build_nexe.py',
823 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources) >(native_sources))',
825 '>@(extra_deps_newlib_mips)',
826 '^(source_list_newlib_mips)',
827 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep',
829 'outputs': ['>(out_newlib_mips)'],
832 '<(DEPTH)/native_client/build/build_nexe.py',
833 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
836 '--build', 'newlib_nexe',
837 '--root', '<(DEPTH)',
838 '--name', '>(out_newlib_mips)',
839 '--objdir', '>(objdir_newlib_mips)',
840 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
841 '--compile_flags=^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
842 '--gomadir', '<(gomadir)',
843 '--defines=^(defines) >(_defines)',
844 '--link_flags=-arch mips -B>(tc_lib_dir_newlib_mips) ^(link_flags) >(_link_flags)',
845 '--source-list=^(source_list_newlib_mips)',
850 # mips newlib library action
851 ['nlib_target!="" and build_newlib!=0', {
853 'tool_name': 'newlib',
854 'out_newlib_mips%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libmips/>(nlib_target)',
855 'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
859 'action_name': 'build newlib mips nlib',
861 'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
863 'msvs_cygwin_shell': 0,
864 'description': 'building >(out_newlib_mips)',
866 '<(DEPTH)/native_client/build/build_nexe.py',
867 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
869 '>@(extra_deps_newlib_mips)',
870 '^(source_list_newlib_mips)',
871 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep',
873 'outputs': ['>(out_newlib_mips)'],
876 '<(DEPTH)/native_client/build/build_nexe.py',
877 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
880 '--build', 'newlib_nlib',
881 '--root', '<(DEPTH)',
882 '--name', '>(out_newlib_mips)',
883 '--objdir', '>(objdir_newlib_mips)',
884 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
885 '--compile_flags=^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
886 '--gomadir', '<(gomadir)',
887 '--defines=^(defines) >(_defines)',
888 '--link_flags=-B>(tc_lib_dir_newlib_mips) ^(link_flags) >(_link_flags)',
889 '--source-list=^(source_list_newlib_mips)',
894 # mips irt nexe action
895 ['nexe_target!="" and build_irt!=0', {
898 'out_newlib_mips%': '<(PRODUCT_DIR)/>(nexe_target)_newlib_mips32.nexe',
899 'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
903 'action_name': 'build IRT mips nexe',
905 'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
907 'msvs_cygwin_shell': 0,
908 'description': 'building >(out_newlib_mips)',
910 '<(DEPTH)/native_client/build/build_nexe.py',
911 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
913 '>@(extra_deps_newlib_mips)',
914 '^(source_list_newlib_mips)',
915 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep',
916 '<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
918 'outputs': ['>(out_newlib_mips)'],
921 '<(DEPTH)/native_client/build/build_nexe.py',
922 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
925 '--build', 'newlib_nexe',
926 '--root', '<(DEPTH)',
927 '--name', '>(out_newlib_mips)',
928 '--objdir', '>(objdir_newlib_mips)',
929 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
930 '--compile_flags=-stdlib=libstdc++ ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
931 '--gomadir', '<(gomadir)',
932 '--defines=^(defines) >(_defines)',
933 '--link_flags=-arch mips -stdlib=libstdc++ --pnacl-allow-translate --pnacl-allow-native -Wt,-mtls-use-call --pnacl-disable-abi-check -B>(tc_lib_dir_irt_mips) ^(pnacl_irt_link_flags) ^(link_flags) >(_link_flags)',
934 '--source-list=^(source_list_newlib_mips)',
935 '--tls-edit=<(PRODUCT_DIR)/tls_edit<(EXECUTABLE_SUFFIX)',
941 # mips IRT library action
942 ['nlib_target!="" and build_irt!=0', {
945 'out_newlib_mips%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libmips/>(nlib_target)',
946 'objdir_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)-mips/>(_target_name)',
950 'action_name': 'build IRT mips nlib',
952 'source_list_newlib_mips%': '^|(<(tool_name)-mips.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
954 'msvs_cygwin_shell': 0,
955 'description': 'building >(out_newlib_mips)',
957 '<(DEPTH)/native_client/build/build_nexe.py',
958 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
960 '>@(extra_deps_newlib_mips)',
961 '^(source_list_newlib_mips)',
962 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep',
964 'outputs': ['>(out_newlib_mips)'],
967 '<(DEPTH)/native_client/build/build_nexe.py',
968 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
971 '--build', 'newlib_nlib',
972 '--root', '<(DEPTH)',
973 '--name', '>(out_newlib_mips)',
974 '--objdir', '>(objdir_newlib_mips)',
975 '--include-dirs=>(tc_include_dir_newlib) ^(include_dirs) >(_include_dirs)',
976 '--compile_flags=-stdlib=libstdc++ ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
977 '--gomadir', '<(gomadir)',
978 '--defines=^(defines) >(_defines)',
979 '--link_flags=-stdlib=libstdc++ -B>(tc_lib_dir_irt_mips) ^(pnacl_irt_link_flags) ^(link_flags) >(_link_flags)',
980 '--source-list=^(source_list_newlib_mips)',
985 ], # end target_conditions for mips newlib
987 }], # end target_arch = mips
988 ['target_arch=="ia32" or target_arch=="x64"', {
990 # x86-64 glibc nexe action
991 'target_conditions': [
992 ['nexe_target!="" and build_glibc!=0 and enable_x86_64!=0 and disable_glibc==0', {
994 'tool_name': 'glibc',
995 'out_glibc64%': '<(PRODUCT_DIR)/>(nexe_target)_glibc_x64.nexe',
996 'objdir_glibc64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
1000 'action_name': 'build glibc x86-64 nexe',
1002 'source_list_glibc64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1004 'msvs_cygwin_shell': 0,
1005 'description': 'building >(out_glibc64)',
1007 '<(DEPTH)/native_client/build/build_nexe.py',
1008 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1010 '>@(extra_deps_glibc64)',
1011 '^(source_list_glibc64)',
1012 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/stamp.prep',
1014 'outputs': ['>(out_glibc64)'],
1017 '<(DEPTH)/native_client/build/build_nexe.py',
1018 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1021 '--build', 'glibc_nexe',
1022 '--root', '<(DEPTH)',
1023 '--name', '>(out_glibc64)',
1024 '--objdir', '>(objdir_glibc64)',
1025 '--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
1026 '--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
1027 '--gomadir', '<(gomadir)',
1028 '--defines=^(defines) >(_defines)',
1029 '--link_flags=-B>(tc_lib_dir_glibc64) ^(link_flags) >(_link_flags)',
1030 '--source-list=^(source_list_glibc64)',
1035 # x86-32 glibc nexe action
1036 ['nexe_target!="" and build_glibc!=0 and enable_x86_32!=0 and disable_glibc==0', {
1038 'tool_name': 'glibc',
1039 'out_glibc32%': '<(PRODUCT_DIR)/>(nexe_target)_glibc_x32.nexe',
1040 'objdir_glibc32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
1044 'action_name': 'build glibc x86-32 nexe',
1046 'source_list_glibc32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1048 'msvs_cygwin_shell': 0,
1049 'description': 'building >(out_glibc32)',
1051 '<(DEPTH)/native_client/build/build_nexe.py',
1052 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1054 '>@(extra_deps_glibc32)',
1055 '^(source_list_glibc32)',
1056 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/stamp.prep',
1058 'outputs': ['>(out_glibc32)'],
1061 '<(DEPTH)/native_client/build/build_nexe.py',
1062 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1065 '--build', 'glibc_nexe',
1066 '--root', '<(DEPTH)',
1067 '--name', '>(out_glibc32)',
1068 '--objdir', '>(objdir_glibc32)',
1069 '--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
1070 '--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
1071 '--gomadir', '<(gomadir)',
1072 '--defines=^(defines) >(_defines)',
1073 '--link_flags=-m32 -B>(tc_lib_dir_glibc32) ^(link_flags) >(_link_flags)',
1074 '--source-list=^(source_list_glibc32)',
1079 # x86-64 glibc static library action
1080 ['nlib_target!="" and build_glibc!=0 and enable_x86_64!=0 and disable_glibc==0', {
1082 'tool_name': 'glibc',
1083 'objdir_glibc64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64/>(_target_name)',
1084 'out_glibc64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nlib_target)',
1088 'action_name': 'build glibc x86-64 nlib',
1090 'source_list_glibc64%': '^|(<(tool_name)-x86-64.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1092 'msvs_cygwin_shell': 0,
1093 'description': 'building >(out_glibc64)',
1095 '<(DEPTH)/native_client/build/build_nexe.py',
1096 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1098 '>@(extra_deps_glibc64)',
1099 '^(source_list_glibc64)',
1100 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/stamp.prep',
1102 'outputs': ['>(out_glibc64)'],
1105 '<(DEPTH)/native_client/build/build_nexe.py',
1106 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1109 '--build', 'glibc_nlib',
1110 '--root', '<(DEPTH)',
1111 '--name', '>(out_glibc64)',
1112 '--objdir', '>(objdir_glibc64)',
1113 '--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
1114 '--compile_flags=-m64 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
1115 '--gomadir', '<(gomadir)',
1116 '--defines=^(defines) >(_defines)',
1117 '--link_flags=-B>(tc_lib_dir_glibc64) ^(link_flags) >(_link_flags)',
1118 '--source-list=^(source_list_glibc64)',
1123 # x86-32 glibc static library action
1124 ['nlib_target!="" and build_glibc!=0 and enable_x86_32!=0 and disable_glibc==0', {
1126 'tool_name': 'glibc',
1127 'out_glibc32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nlib_target)',
1128 'objdir_glibc32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32/>(_target_name)',
1132 'action_name': 'build glibc x86-32 nlib',
1134 'source_list_glibc32%': '^|(<(tool_name)-x86-32.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1136 'msvs_cygwin_shell': 0,
1137 'description': 'building >(out_glibc32)',
1139 '<(DEPTH)/native_client/build/build_nexe.py',
1140 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1142 '>@(extra_deps_glibc32)',
1143 '^(source_list_glibc32)',
1144 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/stamp.prep',
1146 'outputs': ['>(out_glibc32)'],
1149 '<(DEPTH)/native_client/build/build_nexe.py',
1150 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1153 '--build', 'glibc_nlib',
1154 '--root', '<(DEPTH)',
1155 '--name', '>(out_glibc32)',
1156 '--objdir', '>(objdir_glibc32)',
1157 '--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
1158 '--compile_flags=-m32 ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
1159 '--gomadir', '<(gomadir)',
1160 '--defines=^(defines) >(_defines)',
1161 '--link_flags=-m32 -B>(tc_lib_dir_glibc32) ^(link_flags) >(_link_flags)',
1162 '--source-list=^(source_list_glibc32)',
1167 # x86-64 glibc shared library action
1168 ['nso_target!="" and build_glibc!=0 and enable_x86_64!=0 and disable_glibc==0', {
1170 'tool_name': 'glibc',
1171 'objdir_glibc64%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-64-so/>(_target_name)',
1172 'out_glibc64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib64/>(nso_target)',
1176 'action_name': 'build glibc x86-64 nso',
1178 'source_list_glibc64%': '^|(<(tool_name)-x86-64-so.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1180 'msvs_cygwin_shell': 0,
1181 'description': 'building >(out_glibc64)',
1183 '<(DEPTH)/native_client/build/build_nexe.py',
1184 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1186 '>@(extra_deps_glibc64)',
1187 '^(source_list_glibc64)',
1188 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/stamp.prep',
1190 'outputs': ['>(out_glibc64)'],
1193 '<(DEPTH)/native_client/build/build_nexe.py',
1195 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1197 '--build', 'glibc_nso',
1198 '--root', '<(DEPTH)',
1199 '--name', '>(out_glibc64)',
1200 '--objdir', '>(objdir_glibc64)',
1201 '--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
1202 '--compile_flags=-m64 -fPIC ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
1203 '--gomadir', '<(gomadir)',
1204 '--defines=^(defines) >(_defines)',
1205 '--link_flags=-B>(tc_lib_dir_glibc64) ^(link_flags) >(_link_flags)',
1206 '--source-list=^(source_list_glibc64)',
1211 # x86-32 glibc shared library action
1212 ['nso_target!="" and build_glibc!=0 and enable_x86_32!=0 and disable_glibc==0', {
1214 'tool_name': 'glibc',
1215 'out_glibc32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib32/>(nso_target)',
1216 'objdir_glibc32%': '>(INTERMEDIATE_DIR)/<(tool_name)-x86-32-so/>(_target_name)',
1220 'action_name': 'build glibc x86-32 nso',
1222 'source_list_glibc32%': '^|(<(tool_name)-x86-32-so.>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1224 'msvs_cygwin_shell': 0,
1225 'description': 'building >(out_glibc32)',
1227 '<(DEPTH)/native_client/build/build_nexe.py',
1228 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1230 '>@(extra_deps_glibc32)',
1231 '^(source_list_glibc32)',
1232 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/stamp.prep',
1234 'outputs': ['>(out_glibc32)'],
1237 '<(DEPTH)/native_client/build/build_nexe.py',
1239 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1241 '--build', 'glibc_nso',
1242 '--root', '<(DEPTH)',
1243 '--name', '>(out_glibc32)',
1244 '--objdir', '>(objdir_glibc32)',
1245 '--include-dirs=>(tc_include_dir_glibc) ^(include_dirs) >(_include_dirs)',
1246 '--compile_flags=-m32 -fPIC ^(gcc_compile_flags) >(_gcc_compile_flags) ^(compile_flags) >(_compile_flags)',
1247 '--gomadir', '<(gomadir)',
1248 '--defines=^(defines) >(_defines)',
1249 '--link_flags=-m32 -B>(tc_lib_dir_glibc32) ^(link_flags) >(_link_flags)',
1250 '--source-list=^(source_list_glibc32)',
1255 ], # end target_conditions for glibc (nexe/nlib/nso, x86-32/64)
1257 }], # end target_arch == ia32 or x64
1259 'target_defaults': {
1260 'gcc_compile_flags': [],
1261 'pnacl_compile_flags': [],
1263 'disable_pnacl%': 0,
1264 'build_pnacl_newlib': 0,
1265 'pnacl_native_biased': 0,
1268 'extra_deps_pnacl_newlib': [],
1269 'tc_lib_dir_pnacl_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib/lib',
1270 'tc_lib_dir_pnacl_translate' :'<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_translate',
1271 'tc_include_dir_pnacl_newlib': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib/include',
1273 '<@(nacl_default_compile_flags)',
1275 'gcc_compile_flags': [
1276 '-fomit-frame-pointer',
1277 # A debugger should be able to unwind IRT call frames. As the IRT is
1278 # compiled with high level of optimizations and without debug info,
1279 # compiler is requested to generate unwind tables explicitly. This
1280 # is the default behavior on x86-64 and when compiling C++ with
1281 # exceptions enabled, the change is for the benefit of x86-32 C.
1282 # These are only required for the IRT but are here for all
1283 # nacl-gcc-compiled binaries because the IRT depends on other libs
1284 '-fasynchronous-unwind-tables',
1286 'pnacl_compile_flags': [
1288 '-Wno-unused-private-field',
1289 '-Wno-char-subscripts',
1290 '-Wno-unused-function',
1292 # IRT compile/link flags to make the binary smaller.
1293 # Omitted from non-IRT libraries to keep the libraries themselves small.
1294 'gcc_irt_compile_flags': [
1295 '-ffunction-sections',
1298 'gcc_irt_link_flags': [
1299 '-Wl,--gc-sections',
1301 'pnacl_irt_link_flags': [
1302 '-Wt,-ffunction-sections',
1303 '-Wt,-fdata-sections',
1304 '-Wn,--gc-sections',
1307 'target_conditions': [
1308 # pnacl actions for building pexes and translating them
1309 ['nexe_target!="" and disable_pnacl==0 and build_pnacl_newlib!=0 '
1310 'and pnacl_native_biased==0', {
1312 'out_pnacl_newlib_x86_32_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_x32.nexe',
1313 'out_pnacl_newlib_x86_64_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_x64.nexe',
1314 'out_pnacl_newlib_arm_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_arm.nexe',
1315 'out_pnacl_newlib_mips_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_mips32.nexe',
1316 'out_pnacl_newlib_x86_32_nonsfi_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_x32_nonsfi.nexe',
1317 'tool_name': 'pnacl_newlib',
1318 'inst_dir': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib',
1319 'out_pnacl_newlib%': '<(PRODUCT_DIR)/>(nexe_target)_newlib.pexe',
1320 'objdir_pnacl_newlib%': '>(INTERMEDIATE_DIR)/<(tool_name)/>(_target_name)',
1324 'translate_flags': [],
1328 'action_name': 'build newlib pexe',
1330 'source_list_pnacl_newlib%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1332 'msvs_cygwin_shell': 0,
1333 'description': 'building >(out_pnacl_newlib)',
1335 '<(DEPTH)/native_client/build/build_nexe.py',
1336 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1338 '>@(extra_deps_pnacl_newlib)',
1339 '^(source_list_pnacl_newlib)',
1340 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep',
1342 'outputs': ['>(out_pnacl_newlib)'],
1345 '<(DEPTH)/native_client/build/build_nexe.py',
1346 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1349 '--build', 'newlib_pexe',
1350 '--root', '<(DEPTH)',
1351 '--name', '>(out_pnacl_newlib)',
1352 '--objdir', '>(objdir_pnacl_newlib)',
1353 '--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
1354 '--compile_flags=^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
1355 '--gomadir', '<(gomadir)',
1356 '--defines=^(defines) >(_defines)',
1357 '--link_flags=-B<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib/lib ^(link_flags) >(_link_flags)',
1358 '--source-list=^(source_list_pnacl_newlib)',
1361 'target_conditions': [
1362 [ 'enable_x86_32!=0', {
1364 'action_name': 'translate newlib pexe to x86-32 nexe',
1365 'msvs_cygwin_shell': 0,
1366 'description': 'translating >(out_pnacl_newlib_x86_32_nexe)',
1368 # Having this in the input somehow causes devenv warnings
1369 # when building pnacl browser tests.
1370 # '<(DEPTH)/native_client/build/build_nexe.py',
1371 '>(out_pnacl_newlib)',
1373 'outputs': [ '>(out_pnacl_newlib_x86_32_nexe)' ],
1376 '<(DEPTH)/native_client/build/build_nexe.py',
1377 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1379 '--build', 'newlib_translate',
1380 '--root', '<(DEPTH)',
1381 '--name', '>(out_pnacl_newlib_x86_32_nexe)',
1382 '--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-x86-32',
1383 '>(out_pnacl_newlib)',
1387 [ 'enable_x86_32_nonsfi!=0', {
1389 'action_name': 'translate newlib pexe to x86-32-nonsfi nexe',
1390 'msvs_cygwin_shell': 0,
1391 'description': 'translating >(out_pnacl_newlib_x86_32_nonsfi_nexe)',
1393 # Having this in the input somehow causes devenv warnings
1394 # when building pnacl browser tests.
1395 # '<(DEPTH)/native_client/build/build_nexe.py',
1396 '>(out_pnacl_newlib)',
1398 'outputs': [ '>(out_pnacl_newlib_x86_32_nonsfi_nexe)' ],
1401 '<(DEPTH)/native_client/build/build_nexe.py',
1402 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1403 '--arch', 'x86-32-nonsfi',
1404 '--build', 'newlib_translate',
1405 '--root', '<(DEPTH)',
1406 '--name', '>(out_pnacl_newlib_x86_32_nonsfi_nexe)',
1407 '--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-x86-32-nonsfi',
1408 '>(out_pnacl_newlib)',
1412 [ 'enable_x86_64!=0', {
1414 'action_name': 'translate newlib pexe to x86-64 nexe',
1415 'msvs_cygwin_shell': 0,
1416 'description': 'translating >(out_pnacl_newlib_x86_64_nexe)',
1418 # Having this in the input somehow causes devenv warnings
1419 # when building pnacl browser tests.
1420 # '<(DEPTH)/native_client/build/build_nexe.py',
1421 '>(out_pnacl_newlib)',
1423 'outputs': [ '>(out_pnacl_newlib_x86_64_nexe)' ],
1426 '<(DEPTH)/native_client/build/build_nexe.py',
1427 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1429 '--build', 'newlib_translate',
1430 '--root', '<(DEPTH)',
1431 '--name', '>(out_pnacl_newlib_x86_64_nexe)',
1432 '--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-x86-64',
1433 '>(out_pnacl_newlib)',
1437 [ 'enable_arm!=0', {
1439 'action_name': 'translate newlib pexe to ARM nexe',
1440 'msvs_cygwin_shell': 0,
1441 'description': 'translating >(out_pnacl_newlib_arm_nexe)',
1443 # Having this in the input somehow causes devenv warnings
1444 # when building pnacl browser tests.
1445 # '<(DEPTH)/native_client/build/build_nexe.py',
1446 '>(out_pnacl_newlib)',
1448 'outputs': [ '>(out_pnacl_newlib_arm_nexe)' ],
1451 '<(DEPTH)/native_client/build/build_nexe.py',
1452 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1454 '--build', 'newlib_translate',
1455 '--root', '<(DEPTH)',
1456 '--name', '>(out_pnacl_newlib_arm_nexe)',
1457 '--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-arm',
1458 '>(out_pnacl_newlib)',
1462 [ 'enable_mips!=0', {
1464 'action_name': 'translate newlib pexe to MIPS nexe',
1465 'msvs_cygwin_shell': 0,
1466 'description': 'translating >(out_pnacl_newlib_mips_nexe)',
1468 # Having this in the input somehow causes devenv warnings
1469 # when building pnacl browser tests.
1470 # '<(DEPTH)/native_client/build/build_nexe.py',
1471 '>(out_pnacl_newlib)',
1473 'outputs': [ '>(out_pnacl_newlib_mips_nexe)' ],
1476 '<(DEPTH)/native_client/build/build_nexe.py',
1477 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1479 '--build', 'newlib_translate',
1480 '--root', '<(DEPTH)',
1481 '--name', '>(out_pnacl_newlib_mips_nexe)',
1482 '--link_flags=^(translate_flags) >(translate_flags) -Wl,-L>(tc_lib_dir_pnacl_translate)/lib-mips32',
1483 '>(out_pnacl_newlib)',
1488 }], # end pnacl actions for building pexes and translating to nexes
1489 # pnacl action for building portable bitcode libraries
1490 ['nlib_target!="" and disable_pnacl==0 and build_pnacl_newlib!=0'
1491 'and pnacl_native_biased==0', {
1493 'tool_name': 'pnacl_newlib',
1494 'objdir_pnacl_newlib%': '>(INTERMEDIATE_DIR)/<(tool_name)-pnacl/>(_target_name)',
1495 'out_pnacl_newlib%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib/>(nlib_target)',
1499 'action_name': 'build newlib plib',
1501 'source_list_pnacl_newlib%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1503 'msvs_cygwin_shell': 0,
1504 'description': 'building >(out_pnacl_newlib)',
1506 '<(DEPTH)/native_client/build/build_nexe.py',
1507 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1509 '>@(extra_deps_pnacl_newlib)',
1510 '^(source_list_pnacl_newlib)',
1511 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep',
1513 'outputs': ['>(out_pnacl_newlib)'],
1516 '<(DEPTH)/native_client/build/build_nexe.py',
1517 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1520 '--build', 'newlib_plib',
1521 '--root', '<(DEPTH)',
1522 '--name', '>(out_pnacl_newlib)',
1523 '--objdir', '>(objdir_pnacl_newlib)',
1524 '--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
1525 '--compile_flags=^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
1526 '--gomadir', '<(gomadir)',
1527 '--defines=^(defines) >(_defines)',
1528 '--link_flags=-B>(tc_lib_dir_pnacl_newlib) ^(link_flags) >(_link_flags)',
1529 '--source-list=^(source_list_pnacl_newlib)',
1533 }], # end pnacl actions for bitcode libraries
1534 ], # end target conditions for pnacl pexe/plib
1535 # pnacl actions for building ABI-biased native libraries
1538 ['target_arch=="arm"', {
1539 'target_conditions': [
1540 ['disable_pnacl==0 and pnacl_native_biased==1 and nlib_target!="" and build_pnacl_newlib!=0', {
1542 'tool_name': 'pnacl_newlib_arm',
1543 'out_pnacl_newlib_arm%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libarm/>(nlib_target)',
1544 'objdir_pnacl_newlib_arm%': '>(INTERMEDIATE_DIR)/<(tool_name)/>(_target_name)',
1548 'action_name': 'build newlib arm nlib (via pnacl)',
1550 'source_list_pnacl_newlib_arm%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1552 'msvs_cygwin_shell': 0,
1553 'description': 'building >(out_pnacl_newlib_arm)',
1555 '<(DEPTH)/native_client/build/build_nexe.py',
1556 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1558 '>@(extra_deps_pnacl_newlib)',
1559 '^(source_list_pnacl_newlib_arm)',
1560 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep'
1562 'outputs': ['>(out_pnacl_newlib_arm)'],
1565 '<(DEPTH)/native_client/build/build_nexe.py',
1566 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1569 '--build', 'newlib_nlib_pnacl',
1570 '--root', '<(DEPTH)',
1571 '--name', '>(out_pnacl_newlib_arm)',
1572 '--objdir', '>(objdir_pnacl_newlib_arm)',
1573 '--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
1574 '--compile_flags=--target=armv7-unknown-nacl-gnueabi -mfloat-abi=hard --pnacl-allow-translate -arch arm ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
1575 '--gomadir', '<(gomadir)',
1576 '--defines=^(defines) >(_defines)',
1577 '--link_flags=-B>(tc_lib_dir_pnacl_newlib) ^(link_flags) >(_link_flags)',
1578 '--source-list=^(source_list_pnacl_newlib_arm)',
1585 # ia32 or x64 (want to build both for Windows)
1586 ['target_arch=="ia32" or target_arch=="x64"', {
1587 'target_conditions': [
1589 ['enable_x86_64!=0 and disable_pnacl==0 and pnacl_native_biased==1 '
1590 'and nlib_target!="" and build_pnacl_newlib!=0', {
1592 'tool_name': 'pnacl_newlib_x86_64',
1593 'out_pnacl_newlib_x86_64%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib-x86-64/>(nlib_target)',
1594 'objdir_pnacl_newlib_x86_64%': '>(INTERMEDIATE_DIR)/<(tool_name)/>(_target_name)',
1598 'action_name': 'build newlib x86-64 nlib (via pnacl)',
1600 'source_list_pnacl_newlib_x86_64%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1602 'msvs_cygwin_shell': 0,
1603 'description': 'building >(out_pnacl_newlib_x86_64)',
1605 '<(DEPTH)/native_client/build/build_nexe.py',
1606 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1608 '>@(extra_deps_pnacl_newlib)',
1609 '^(source_list_pnacl_newlib_x86_64)',
1610 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep'
1612 'outputs': ['>(out_pnacl_newlib_x86_64)'],
1615 '<(DEPTH)/native_client/build/build_nexe.py',
1616 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1619 '--build', 'newlib_nlib_pnacl',
1620 '--root', '<(DEPTH)',
1621 '--name', '>(out_pnacl_newlib_x86_64)',
1622 '--objdir', '>(objdir_pnacl_newlib_x86_64)',
1623 '--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
1624 '--compile_flags=--target=x86_64-unknown-nacl --pnacl-allow-translate -arch x86-64 ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
1625 '--gomadir', '<(gomadir)',
1626 '--defines=^(defines) >(_defines)',
1627 '--link_flags=-B>(tc_lib_dir_pnacl_newlib) ^(link_flags) >(_link_flags)',
1628 '--source-list=^(source_list_pnacl_newlib_x86_64)',
1634 ['enable_x86_32!=0 and disable_pnacl==0 and pnacl_native_biased==1 '
1635 'and nlib_target!="" and build_pnacl_newlib!=0', {
1637 'tool_name': 'pnacl_newlib_x86_32',
1638 'out_pnacl_newlib_x86_32%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib-x86-32/>(nlib_target)',
1639 'objdir_pnacl_newlib_x86_32%': '>(INTERMEDIATE_DIR)/<(tool_name)/>(_target_name)',
1643 'action_name': 'build newlib x86-32 nlib (via pnacl)',
1645 'source_list_pnacl_newlib_x86_32%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1647 'msvs_cygwin_shell': 0,
1648 'description': 'building >(out_pnacl_newlib_x86_32)',
1650 '<(DEPTH)/native_client/build/build_nexe.py',
1651 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1653 '>@(extra_deps_pnacl_newlib)',
1654 '^(source_list_pnacl_newlib_x86_32)',
1655 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep'
1657 'outputs': ['>(out_pnacl_newlib_x86_32)'],
1660 '<(DEPTH)/native_client/build/build_nexe.py',
1661 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1664 '--build', 'newlib_nlib_pnacl',
1665 '--root', '<(DEPTH)',
1666 '--name', '>(out_pnacl_newlib_x86_32)',
1667 '--objdir', '>(objdir_pnacl_newlib_x86_32)',
1668 '--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
1669 '--compile_flags=--target=i686-unknown-nacl --pnacl-allow-translate -arch x86-32 ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
1670 '--gomadir', '<(gomadir)',
1671 '--defines=^(defines) >(_defines)',
1672 '--link_flags=-B>(tc_lib_dir_pnacl_newlib) ^(link_flags) >(_link_flags)',
1673 '--source-list=^(source_list_pnacl_newlib_x86_32)',
1678 # Non-SFI mode for ia32.
1679 ['enable_x86_32_nonsfi!=0 and disable_pnacl==0 and '
1680 'pnacl_native_biased==1 and nlib_target!="" and '
1681 'build_pnacl_newlib!=0', {
1683 'tool_name': 'pnacl_newlib_x86_32',
1684 # TODO(hidehiko): replace with (tc_lib_dir_pnacl_translate)/
1685 # lib-x86-32-nonsfi/>(nlib_target) to be more consistent with
1687 'out_pnacl_newlib_x86_32_nonsfi%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/lib-x86-32-nonsfi/>(nlib_target)',
1688 'objdir_pnacl_newlib_x86_32_nonsfi%': '>(INTERMEDIATE_DIR)/<(tool_name)-nonsfi/>(_target_name)',
1692 'action_name': 'build newlib x86-32-nonsfi nlib (via pnacl)',
1694 'source_list_pnacl_newlib_x86_32_nonsfi%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1696 'msvs_cygwin_shell': 0,
1697 'description': 'building >(out_pnacl_newlib_x86_32_nonsfi)',
1699 '<(DEPTH)/native_client/build/build_nexe.py',
1700 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1702 '>@(extra_deps_pnacl_newlib)',
1703 '^(source_list_pnacl_newlib_x86_32_nonsfi)',
1704 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep'
1706 'outputs': ['>(out_pnacl_newlib_x86_32_nonsfi)'],
1709 '<(DEPTH)/native_client/build/build_nexe.py',
1710 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1712 '--arch', 'x86-32-nonsfi',
1713 '--build', 'newlib_nlib_pnacl',
1714 '--root', '<(DEPTH)',
1715 '--name', '>(out_pnacl_newlib_x86_32_nonsfi)',
1716 '--objdir', '>(objdir_pnacl_newlib_x86_32_nonsfi)',
1717 '--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
1718 '--compile_flags=--target=i686-unknown-nacl --pnacl-allow-native --pnacl-allow-translate -arch x86-32-nonsfi ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
1719 '--gomadir', '<(gomadir)',
1720 '--defines=^(defines) >(_defines)',
1721 '--link_flags=-B>(tc_lib_dir_pnacl_newlib) ^(link_flags) >(_link_flags)',
1722 '--source-list=^(source_list_pnacl_newlib_x86_32_nonsfi)',
1726 }], # end ia32 Non-SFI mode.
1727 ], # end ia32 or x64
1730 # The shim is not biased since the IRT itself is not biased.
1731 ['target_arch=="mipsel"', {
1732 'target_conditions': [
1733 ['disable_pnacl==0 and pnacl_native_biased==1 and nlib_target!="" and build_pnacl_newlib!=0', {
1735 'tool_name': 'pnacl_newlib_mips',
1736 'out_pnacl_newlib_mips%': '<(SHARED_INTERMEDIATE_DIR)/tc_<(tool_name)/libmips/>(nlib_target)',
1737 'objdir_pnacl_newlib_mips%': '>(INTERMEDIATE_DIR)/<(tool_name)/>(_target_name)',
1741 'action_name': 'build newlib mips nlib (via pnacl)',
1743 'source_list_pnacl_newlib_mips%': '^|(<(tool_name).>(_target_name).source_list.gypcmd ^(_sources) ^(sources))',
1745 'msvs_cygwin_shell': 0,
1746 'description': 'building >(out_pnacl_newlib_mips)',
1748 '<(DEPTH)/native_client/build/build_nexe.py',
1749 '>!@pymod_do_main(>(get_sources) >(sources) >(_sources))',
1751 '>@(extra_deps_pnacl_newlib)',
1752 '^(source_list_pnacl_newlib_mips)',
1753 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/stamp.prep'
1755 'outputs': ['>(out_pnacl_newlib_mips)'],
1758 '<(DEPTH)/native_client/build/build_nexe.py',
1759 '-t', '<(SHARED_INTERMEDIATE_DIR)/sdk/',
1762 '--build', 'newlib_nlib_pnacl',
1763 '--root', '<(DEPTH)',
1764 '--name', '>(out_pnacl_newlib_mips)',
1765 '--objdir', '>(objdir_pnacl_newlib_mips)',
1766 '--include-dirs=>(tc_include_dir_pnacl_newlib) ^(include_dirs) >(_include_dirs)',
1767 '--compile_flags=--pnacl-allow-translate -arch mips ^(compile_flags) >(_compile_flags) ^(pnacl_compile_flags) >(_pnacl_compile_flags)',
1768 '--gomadir', '<(gomadir)',
1769 '--defines=^(defines) >(_defines)',
1770 '--link_flags=-B>(tc_lib_dir_pnacl_newlib) ^(link_flags) >(_link_flags)',
1771 '--source-list=^(source_list_pnacl_newlib_mips)',
1778 # end pnacl actions for building ABI-biased native libraries
1779 ], # end conditions for pnacl biased nlib