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.
6 ######################################################################
10 ######################################################################
16 'disable_glibc_untar%': 0,
17 'disable_newlib_untar%': 0,
18 'disable_arm_untar%': 0,
19 'disable_pnacl_untar%': 0,
20 'nacl_x86_newlib_toolchain%': "",
21 'nacl_x86_newlib_stamp%': "nacl_x86_newlib.json",
22 'nacl_arm_newlib_toolchain%': "",
23 'nacl_arm_newlib_stamp%': "nacl_arm_newlib.json",
24 'nacl_x86_glibc_toolchain%': "",
25 'nacl_x86_glibc_stamp%': "nacl_x86_glibc.json",
26 'pnacl_newlib_toolchain%': "",
27 'pnacl_newlib_stamp%': "pnacl_newlib.json",
30 'TOOLCHAIN_OS': 'linux',
32 'TOOLCHAIN_OS': '<(OS)',
38 'target_name': 'prep_toolchain',
45 ['target_arch=="ia32" or target_arch=="x64"', {
53 ['target_arch=="arm"', {
62 'target_name': 'untar_toolchains',
65 ['nacl_x86_newlib_toolchain=="" and disable_newlib==0 and disable_newlib_untar==0', {
68 'action_name': 'Untar x86 newlib toolchain',
69 'msvs_cygwin_shell': 0,
70 'description': 'Untar x86 newlib toolchain',
72 '<(DEPTH)/native_client/build/package_version/package_version.py',
73 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib.json',
75 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/nacl_x86_newlib.json'],
78 '<(DEPTH)/native_client/build/package_version/package_version.py',
80 '--packages', 'nacl_x86_newlib',
81 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
82 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
88 ['nacl_x86_newlib_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
91 'action_name': 'Copy x86 newlib toolchain',
92 'msvs_cygwin_shell': 0,
93 'description': 'Copy x86 newlib toolchain',
95 '<(DEPTH)/native_client/build/copy_directory.py',
96 '<(nacl_x86_newlib_toolchain)/<(nacl_x86_newlib_stamp)',
98 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/<(nacl_x86_newlib_stamp)'],
101 '<(DEPTH)/native_client/build/copy_directory.py',
103 '--stamp-arg', 'nacl_x86_newlib_stamp',
104 '--stamp-file', '<(nacl_x86_newlib_stamp)',
105 '<(nacl_x86_newlib_toolchain)',
106 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib',
111 ['nacl_x86_glibc_toolchain=="" and disable_glibc==0 and disable_glibc_untar==0', {
114 'action_name': 'Untar x86 glibc toolchain',
115 'msvs_cygwin_shell': 0,
116 'description': 'Untar x86 glibc toolchain',
118 '<(DEPTH)/native_client/build/package_version/package_version.py',
119 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc.json',
121 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/nacl_x86_glibc.json'],
124 '<(DEPTH)/native_client/build/package_version/package_version.py',
126 '--packages', 'nacl_x86_glibc',
127 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
128 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
134 ['nacl_x86_glibc_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
137 'action_name': 'Copy x86 glibc toolchain',
138 'msvs_cygwin_shell': 0,
139 'description': 'Copy x86 glibc toolchain',
141 '<(DEPTH)/native_client/build/copy_directory.py',
142 '<(nacl_x86_glibc_toolchain)/<(nacl_x86_glibc_stamp)',
144 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/<(nacl_x86_glibc_stamp)'],
147 '<(DEPTH)/native_client/build/copy_directory.py',
149 '--stamp-arg', 'nacl_x86_glibc_stamp',
150 '--stamp-file', '<(nacl_x86_glibc_stamp)',
151 '<(nacl_x86_glibc_toolchain)',
152 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc',
157 ['pnacl_newlib_toolchain=="" and disable_pnacl==0 and disable_pnacl_untar==0', {
160 'action_name': 'Untar pnacl toolchain',
161 'msvs_cygwin_shell': 0,
162 'description': 'Untar pnacl toolchain',
164 '<(DEPTH)/native_client/build/package_version/package_version.py',
165 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/pnacl_newlib.json',
167 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/pnacl_newlib.json'],
170 '<(DEPTH)/native_client/build/package_version/package_version.py',
172 '--packages', 'pnacl_newlib',
173 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
174 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
180 ['pnacl_newlib_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
183 'action_name': 'Copy pnacl toolchain',
184 'msvs_cygwin_shell': 0,
185 'description': 'Copy pnacl toolchain',
187 '<(DEPTH)/native_client/build/copy_directory.py',
188 '<(pnacl_newlib_toolchain)/<(pnacl_newlib_stamp)',
190 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/<(pnacl_newlib_stamp)'],
193 '<(DEPTH)/native_client/build/copy_directory.py',
195 '--stamp-arg', 'pnacl_newlib_stamp',
196 '--stamp-file', '<(pnacl_newlib_stamp)',
197 '<(pnacl_newlib_toolchain)',
198 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib',
203 ['nacl_arm_newlib_toolchain=="" and target_arch=="arm" and disable_arm==0 and disable_arm_untar==0', {
206 'action_name': 'Untar arm toolchain',
207 'msvs_cygwin_shell': 0,
208 'description': 'Untar arm toolchain',
210 '<(DEPTH)/native_client/build/package_version/package_version.py',
211 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib.json',
213 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/nacl_arm_newlib.json'],
216 '<(DEPTH)/native_client/build/package_version/package_version.py',
218 '--packages', 'nacl_arm_newlib',
219 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
220 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
226 ['nacl_arm_newlib_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
229 'action_name': 'Copy arm toolchain',
230 'msvs_cygwin_shell': 0,
231 'description': 'Copy arm toolchain',
233 '<(DEPTH)/native_client/build/copy_directory.py',
234 '<(nacl_arm_newlib_toolchain)/<(nacl_arm_newlib_stamp)',
236 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/<(nacl_arm_newlib_stamp)'],
239 '<(DEPTH)/native_client/build/copy_directory.py',
241 '--stamp-arg', 'nacl_arm_newlib_stamp',
242 '--stamp-file', '<(nacl_arm_newlib_stamp)',
243 '<(nacl_arm_newlib_toolchain)',
244 '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib',
252 'target_name': 'prep_nacl_sdk',
258 'newlib_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib',
259 'glibc_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc',
260 'pnacl_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib',
261 'arm_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib',
264 ['disable_newlib==0', {
267 'action_name': 'Prep x86 newlib toolchain',
268 'msvs_cygwin_shell': 0,
269 'description': 'Prep x86 newlib toolchain',
271 '<(newlib_dir)/<(nacl_x86_newlib_stamp)',
272 '>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_newlib)',
274 'outputs': ['<(newlib_dir)/stamp.prep'],
277 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
278 '--tool', 'x86_newlib',
279 '--path', '<(newlib_dir)',
284 ['disable_glibc==0', {
287 'action_name': 'Prep x86 glibc toolchain',
288 'msvs_cygwin_shell': 0,
289 'description': 'Prep x86 glibc toolchain',
291 '<(glibc_dir)/<(nacl_x86_glibc_stamp)',
292 '>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_glibc)',
294 'outputs': ['<(glibc_dir)/stamp.prep'],
297 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
298 '--tool', 'x86_glibc',
299 '--path', '<(glibc_dir)',
304 ['target_arch=="arm" and disable_arm==0', {
307 'action_name': 'Prep arm toolchain',
308 'msvs_cygwin_shell': 0,
309 'description': 'Prep arm toolchain',
311 '<(arm_dir)/<(nacl_arm_newlib_stamp)',
312 '>!@pymod_do_main(prep_nacl_sdk --inputs --tool arm_newlib)',
314 'outputs': ['<(arm_dir)/stamp.prep'],
317 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
318 '--tool', 'arm_newlib',
319 '--path', '<(arm_dir)',
324 ['disable_pnacl==0', {
327 'action_name': 'Prep pnacl toolchain',
328 'msvs_cygwin_shell': 0,
329 'description': 'Prep pnacl toolchain',
331 '<(pnacl_dir)/<(pnacl_newlib_stamp)',
332 '>!@pymod_do_main(prep_nacl_sdk --inputs --tool pnacl)',
334 'outputs': ['<(pnacl_dir)/stamp.prep'],
337 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
339 '--path', '<(pnacl_dir)',
347 # The crt_init_* targets only need to be built for non-pnacl newlib-based
348 # toolchains (and for the IRT if the IRT is built with such a toolchain).
350 ['target_arch=="ia32" or target_arch=="x64"', {
353 'target_name': 'crt_init_64',
360 'nlib_target': 'crti.o',
361 'windows_asm_rule': 0,
373 'src/untrusted/stubs/crti_x86_64.S',
377 'target_name': 'crt_fini_64',
384 'nlib_target': 'crtn.o',
385 'windows_asm_rule': 0,
397 'src/untrusted/stubs/crtn_x86_64.S'
402 ['target_arch=="ia32" or target_arch=="x64"', {
405 'target_name': 'crt_init_32',
412 'nlib_target': 'crti.o',
413 'windows_asm_rule': 0,
425 'src/untrusted/stubs/crti_x86_32.S',
429 'target_name': 'crt_fini_32',
436 'nlib_target': 'crtn.o',
437 'windows_asm_rule': 0,
449 'src/untrusted/stubs/crtn_x86_32.S'
454 ['target_arch=="arm"', {
457 'target_name': 'crt_init_arm',
464 'nlib_target': 'crti.o',
465 'windows_asm_rule': 0,
476 'src/untrusted/stubs/crti_arm.S',
480 'target_name': 'crt_fini_arm',
487 'nlib_target': 'crtn.o',
488 'windows_asm_rule': 0,
499 'src/untrusted/stubs/crtn_arm.S'