Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / native_client / tools.gyp
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.
4
5 {
6   ######################################################################
7   'includes': [
8     'build/common.gypi',
9   ],
10   ######################################################################
11   'variables': {
12     'disable_glibc%': 0,
13     'disable_newlib%': 0,
14     'disable_pnacl%': 0,
15     'disable_arm%': 0,
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",
28     'conditions': [
29       ['OS=="android"', {
30         'TOOLCHAIN_OS': 'linux',
31       }, {
32         'TOOLCHAIN_OS': '<(OS)',
33       }],
34     ]
35   },
36   'targets' : [
37     {
38       'target_name': 'prep_toolchain',
39       'type': 'none',
40       'dependencies': [
41         'untar_toolchains',
42         'prep_nacl_sdk',
43       ],
44       'conditions': [
45         ['target_arch=="ia32" or target_arch=="x64"', {
46           'dependencies': [
47             'crt_init_32',
48             'crt_fini_32',
49             'crt_init_64',
50             'crt_fini_64',
51           ],
52         }],
53         ['target_arch=="arm"', {
54           'dependencies': [
55             'crt_init_arm',
56             'crt_fini_arm',
57           ]
58         }],
59       ],
60     },
61     {
62       'target_name': 'untar_toolchains',
63       'type': 'none',
64       'conditions': [
65         ['nacl_x86_newlib_toolchain=="" and disable_newlib==0 and disable_newlib_untar==0', {
66           'actions': [
67             {
68               'action_name': 'Untar x86 newlib toolchain',
69               'msvs_cygwin_shell': 0,
70               'description': 'Untar x86 newlib toolchain',
71               'inputs': [
72                  '<(DEPTH)/native_client/build/package_version/package_version.py',
73                  '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib.json',
74               ],
75               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/nacl_x86_newlib.json'],
76               'action': [
77                 'python',
78                 '<(DEPTH)/native_client/build/package_version/package_version.py',
79                 '--quiet',
80                 '--packages', 'nacl_x86_newlib',
81                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
82                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
83                 'extract',
84               ],
85             },
86           ],
87         }],
88         ['nacl_x86_newlib_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
89           'actions': [
90             {
91               'action_name': 'Copy x86 newlib toolchain',
92               'msvs_cygwin_shell': 0,
93               'description': 'Copy x86 newlib toolchain',
94               'inputs': [
95                  '<(DEPTH)/native_client/build/copy_directory.py',
96                  '<(nacl_x86_newlib_toolchain)/<(nacl_x86_newlib_stamp)',
97               ],
98               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/<(nacl_x86_newlib_stamp)'],
99               'action': [
100                 'python',
101                 '<(DEPTH)/native_client/build/copy_directory.py',
102                 '--quiet',
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',
107               ],
108             },
109           ],
110         }],
111         ['nacl_x86_glibc_toolchain=="" and disable_glibc==0 and disable_glibc_untar==0', {
112           'actions': [
113             {
114               'action_name': 'Untar x86 glibc toolchain',
115               'msvs_cygwin_shell': 0,
116               'description': 'Untar x86 glibc toolchain',
117               'inputs': [
118                 '<(DEPTH)/native_client/build/package_version/package_version.py',
119                 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc.json',
120               ],
121               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/nacl_x86_glibc.json'],
122               'action': [
123                 'python',
124                 '<(DEPTH)/native_client/build/package_version/package_version.py',
125                 '--quiet',
126                 '--packages', 'nacl_x86_glibc',
127                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
128                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
129                 'extract',
130               ],
131             },
132           ],
133         }],
134         ['nacl_x86_glibc_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
135           'actions': [
136             {
137               'action_name': 'Copy x86 glibc toolchain',
138               'msvs_cygwin_shell': 0,
139               'description': 'Copy x86 glibc toolchain',
140               'inputs': [
141                  '<(DEPTH)/native_client/build/copy_directory.py',
142                  '<(nacl_x86_glibc_toolchain)/<(nacl_x86_glibc_stamp)',
143               ],
144               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/<(nacl_x86_glibc_stamp)'],
145               'action': [
146                 'python',
147                 '<(DEPTH)/native_client/build/copy_directory.py',
148                 '--quiet',
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',
153               ],
154             },
155           ],
156         }],
157         ['pnacl_newlib_toolchain=="" and disable_pnacl==0 and disable_pnacl_untar==0', {
158           'actions': [
159             {
160               'action_name': 'Untar pnacl toolchain',
161               'msvs_cygwin_shell': 0,
162               'description': 'Untar pnacl toolchain',
163               'inputs': [
164                 '<(DEPTH)/native_client/build/package_version/package_version.py',
165                 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/pnacl_newlib.json',
166               ],
167               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/pnacl_newlib.json'],
168               'action': [
169                 'python',
170                 '<(DEPTH)/native_client/build/package_version/package_version.py',
171                 '--quiet',
172                 '--packages', 'pnacl_newlib',
173                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
174                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
175                 'extract',
176               ],
177             },
178           ],
179         }],
180         ['pnacl_newlib_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
181           'actions': [
182             {
183               'action_name': 'Copy pnacl toolchain',
184               'msvs_cygwin_shell': 0,
185               'description': 'Copy pnacl toolchain',
186               'inputs': [
187                  '<(DEPTH)/native_client/build/copy_directory.py',
188                  '<(pnacl_newlib_toolchain)/<(pnacl_newlib_stamp)',
189               ],
190               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/<(pnacl_newlib_stamp)'],
191               'action': [
192                 'python',
193                 '<(DEPTH)/native_client/build/copy_directory.py',
194                 '--quiet',
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',
199               ],
200             },
201           ],
202         }],
203         ['nacl_arm_newlib_toolchain=="" and target_arch=="arm" and disable_arm==0 and disable_arm_untar==0', {
204           'actions': [
205             {
206               'action_name': 'Untar arm toolchain',
207               'msvs_cygwin_shell': 0,
208               'description': 'Untar arm toolchain',
209               'inputs': [
210                 '<(DEPTH)/native_client/build/package_version/package_version.py',
211                 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib.json',
212               ],
213               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/nacl_arm_newlib.json'],
214               'action': [
215                 'python',
216                 '<(DEPTH)/native_client/build/package_version/package_version.py',
217                 '--quiet',
218                 '--packages', 'nacl_arm_newlib',
219                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
220                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
221                 'extract',
222               ],
223             },
224           ],
225         }],
226         ['nacl_arm_newlib_toolchain!="" and disable_newlib==0 and disable_newlib_untar==0', {
227           'actions': [
228             {
229               'action_name': 'Copy arm toolchain',
230               'msvs_cygwin_shell': 0,
231               'description': 'Copy arm toolchain',
232               'inputs': [
233                  '<(DEPTH)/native_client/build/copy_directory.py',
234                  '<(nacl_arm_newlib_toolchain)/<(nacl_arm_newlib_stamp)',
235               ],
236               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/<(nacl_arm_newlib_stamp)'],
237               'action': [
238                 'python',
239                 '<(DEPTH)/native_client/build/copy_directory.py',
240                 '--quiet',
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',
245               ],
246             },
247           ],
248         }],
249       ]
250     },
251     {
252       'target_name': 'prep_nacl_sdk',
253       'type': 'none',
254       'dependencies': [
255         'untar_toolchains',
256       ],
257       'variables': {
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',
262       },
263       'conditions': [
264         ['disable_newlib==0', {
265           'actions': [
266             {
267               'action_name': 'Prep x86 newlib toolchain',
268               'msvs_cygwin_shell': 0,
269               'description': 'Prep x86 newlib toolchain',
270               'inputs': [
271                  '<(newlib_dir)/<(nacl_x86_newlib_stamp)',
272                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_newlib)',
273               ],
274               'outputs': ['<(newlib_dir)/stamp.prep'],
275               'action': [
276                 'python',
277                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
278                 '--tool', 'x86_newlib',
279                 '--path', '<(newlib_dir)',
280               ],
281             },
282           ]
283         }],
284         ['disable_glibc==0', {
285           'actions': [
286             {
287               'action_name': 'Prep x86 glibc toolchain',
288               'msvs_cygwin_shell': 0,
289               'description': 'Prep x86 glibc toolchain',
290               'inputs': [
291                  '<(glibc_dir)/<(nacl_x86_glibc_stamp)',
292                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_glibc)',
293               ],
294               'outputs': ['<(glibc_dir)/stamp.prep'],
295               'action': [
296                 'python',
297                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
298                 '--tool', 'x86_glibc',
299                 '--path', '<(glibc_dir)',
300               ],
301             },
302           ]
303         }],
304         ['target_arch=="arm" and disable_arm==0', {
305           'actions': [
306             {
307               'action_name': 'Prep arm toolchain',
308               'msvs_cygwin_shell': 0,
309               'description': 'Prep arm toolchain',
310               'inputs': [
311                  '<(arm_dir)/<(nacl_arm_newlib_stamp)',
312                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool arm_newlib)',
313               ],
314               'outputs': ['<(arm_dir)/stamp.prep'],
315               'action': [
316                 'python',
317                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
318                 '--tool', 'arm_newlib',
319                 '--path', '<(arm_dir)',
320               ],
321             },
322           ]
323         }],
324         ['disable_pnacl==0', {
325           'actions': [
326             {
327               'action_name': 'Prep pnacl toolchain',
328               'msvs_cygwin_shell': 0,
329               'description': 'Prep pnacl toolchain',
330               'inputs': [
331                  '<(pnacl_dir)/<(pnacl_newlib_stamp)',
332                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool pnacl)',
333               ],
334               'outputs': ['<(pnacl_dir)/stamp.prep'],
335               'action': [
336                 'python',
337                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
338                 '--tool', 'pnacl',
339                 '--path', '<(pnacl_dir)',
340               ],
341             },
342           ]
343         }],
344       ]
345     },
346   ],
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).
349   'conditions': [
350     ['target_arch=="ia32" or target_arch=="x64"', {
351       'targets' : [
352         {
353           'target_name': 'crt_init_64',
354           'type': 'none',
355           'dependencies': [
356             'untar_toolchains',
357             'prep_nacl_sdk'
358           ],
359           'variables': {
360             'nlib_target': 'crti.o',
361             'windows_asm_rule': 0,
362             'build_glibc': 0,
363             'build_newlib': 1,
364             'build_irt': 0,
365             'enable_x86_32': 0,
366             'extra_args': [
367               '--compile',
368               '--no-suffix',
369               '--strip=_x86_64'
370             ],
371           },
372           'sources': [
373             'src/untrusted/stubs/crti_x86_64.S',
374           ]
375         },
376         {
377           'target_name': 'crt_fini_64',
378           'type': 'none',
379           'dependencies': [
380             'untar_toolchains',
381             'prep_nacl_sdk'
382           ],
383           'variables': {
384             'nlib_target': 'crtn.o',
385             'windows_asm_rule': 0,
386             'build_glibc': 0,
387             'build_newlib': 1,
388             'build_irt': 0,
389             'enable_x86_32': 0,
390             'extra_args': [
391               '--compile',
392               '--no-suffix',
393               '--strip=_x86_64'
394             ],
395           },
396           'sources': [
397             'src/untrusted/stubs/crtn_x86_64.S'
398           ],
399         }
400       ],
401     }],
402     ['target_arch=="ia32" or target_arch=="x64"', {
403       'targets' : [
404         {
405           'target_name': 'crt_init_32',
406           'type': 'none',
407           'dependencies': [
408             'untar_toolchains',
409             'prep_nacl_sdk'
410           ],
411           'variables': {
412             'nlib_target': 'crti.o',
413             'windows_asm_rule': 0,
414             'build_glibc': 0,
415             'build_newlib': 1,
416             'build_irt': 0,
417             'enable_x86_64': 0,
418             'extra_args': [
419               '--compile',
420               '--no-suffix',
421               '--strip=_x86_32'
422             ],
423           },
424           'sources': [
425             'src/untrusted/stubs/crti_x86_32.S',
426           ],
427         },
428         {
429           'target_name': 'crt_fini_32',
430           'type': 'none',
431           'dependencies': [
432             'untar_toolchains',
433             'prep_nacl_sdk'
434           ],
435           'variables': {
436             'nlib_target': 'crtn.o',
437             'windows_asm_rule': 0,
438             'build_glibc': 0,
439             'build_newlib': 1,
440             'build_irt': 0,
441             'enable_x86_64': 0,
442             'extra_args': [
443               '--compile',
444               '--no-suffix',
445               '--strip=_x86_32'
446             ],
447           },
448           'sources': [
449             'src/untrusted/stubs/crtn_x86_32.S'
450           ],
451         }
452       ],
453     }],
454     ['target_arch=="arm"', {
455       'targets' : [
456         {
457           'target_name': 'crt_init_arm',
458           'type': 'none',
459           'dependencies': [
460             'untar_toolchains',
461             'prep_nacl_sdk'
462           ],
463           'variables': {
464             'nlib_target': 'crti.o',
465             'windows_asm_rule': 0,
466             'build_glibc': 0,
467             'build_newlib': 1,
468             'build_irt': 1,
469             'extra_args': [
470               '--compile',
471               '--no-suffix',
472               '--strip=_arm'
473             ],
474           },
475           'sources': [
476             'src/untrusted/stubs/crti_arm.S',
477           ],
478         },
479         {
480           'target_name': 'crt_fini_arm',
481           'type': 'none',
482           'dependencies': [
483             'untar_toolchains',
484             'prep_nacl_sdk'
485           ],
486           'variables': {
487             'nlib_target': 'crtn.o',
488             'windows_asm_rule': 0,
489             'build_glibc': 0,
490             'build_newlib': 1,
491             'build_irt': 1,
492             'extra_args': [
493               '--compile',
494               '--no-suffix',
495               '--strip=_arm'
496             ],
497           },
498           'sources': [
499             'src/untrusted/stubs/crtn_arm.S'
500           ],
501         }
502       ],
503     }],
504   ],
505 }