Upstream version 8.37.180.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     'conditions': [
21       ['OS=="android"', {
22         'TOOLCHAIN_OS': 'linux',
23       }, {
24         'TOOLCHAIN_OS': '<(OS)',
25       }],
26     ]
27   },
28   'targets' : [
29     {
30       'target_name': 'prep_toolchain',
31       'type': 'none',
32       'dependencies': [
33         'untar_toolchains',
34         'prep_nacl_sdk',
35       ],
36       'conditions': [
37         ['target_arch=="ia32" or target_arch=="x64"', {
38           'dependencies': [
39             'crt_init_32',
40             'crt_fini_32',
41             'crt_init_64',
42             'crt_fini_64',
43           ],
44         }],
45         ['target_arch=="arm"', {
46           'dependencies': [
47             'crt_init_arm',
48             'crt_fini_arm',
49           ]
50         }],
51       ],
52     },
53     {
54       'target_name': 'untar_toolchains',
55       'type': 'none',
56       'conditions': [
57         ['disable_newlib==0 and disable_newlib_untar==0', {
58           'actions': [
59             {
60               'action_name': 'Untar x86 newlib toolchain',
61               'msvs_cygwin_shell': 0,
62               'description': 'Untar x86 newlib toolchain',
63               'inputs': [
64                  '<(DEPTH)/native_client/build/package_version/package_version.py',
65                  '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib.json',
66               ],
67               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib/nacl_x86_newlib.json'],
68               'action': [
69                 'python',
70                 '<(DEPTH)/native_client/build/package_version/package_version.py',
71                 '--quiet',
72                 '--packages', 'nacl_x86_newlib',
73                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
74                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
75                 'extract',
76               ],
77             },
78           ]
79         }],
80         ['disable_glibc==0 and disable_glibc_untar==0', {
81           'actions': [
82             {
83               'action_name': 'Untar x86 glibc toolchain',
84               'msvs_cygwin_shell': 0,
85               'description': 'Untar x86 glibc toolchain',
86               'inputs': [
87                 '<(DEPTH)/native_client/build/package_version/package_version.py',
88                 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc.json',
89               ],
90               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc/nacl_x86_glibc.json'],
91               'action': [
92                 'python',
93                 '<(DEPTH)/native_client/build/package_version/package_version.py',
94                 '--quiet',
95                 '--packages', 'nacl_x86_glibc',
96                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
97                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
98                 'extract',
99               ],
100             },
101           ]
102         }],
103         ['disable_pnacl==0 and disable_pnacl_untar==0', {
104           'actions': [
105             {
106               'action_name': 'Untar pnacl toolchain',
107               'msvs_cygwin_shell': 0,
108               'description': 'Untar pnacl toolchain',
109               'inputs': [
110                 '<(DEPTH)/native_client/build/package_version/package_version.py',
111                 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/pnacl_newlib.json',
112               ],
113               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib/pnacl_newlib.json'],
114               'action': [
115                 'python',
116                 '<(DEPTH)/native_client/build/package_version/package_version.py',
117                 '--quiet',
118                 '--packages', 'pnacl_newlib',
119                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
120                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
121                 'extract',
122               ],
123             },
124           ]
125         }],
126         ['target_arch=="arm" and disable_arm==0 and disable_arm_untar==0', {
127           'actions': [
128             {
129               'action_name': 'Untar arm toolchain',
130               'msvs_cygwin_shell': 0,
131               'description': 'Untar arm toolchain',
132               'inputs': [
133                 '<(DEPTH)/native_client/build/package_version/package_version.py',
134                 '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib.json',
135               ],
136               'outputs': ['<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib/nacl_arm_newlib.json'],
137               'action': [
138                 'python',
139                 '<(DEPTH)/native_client/build/package_version/package_version.py',
140                 '--quiet',
141                 '--packages', 'nacl_arm_newlib',
142                 '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
143                 '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)/sdk',
144                 'extract',
145               ],
146             },
147           ]
148         }],
149       ]
150     },
151     {
152       'target_name': 'prep_nacl_sdk',
153       'type': 'none',
154       'dependencies': [
155         'untar_toolchains',
156       ],
157       'variables': {
158         'newlib_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_newlib',
159         'glibc_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_x86_glibc',
160         'pnacl_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/pnacl_newlib',
161         'arm_dir': '<(SHARED_INTERMEDIATE_DIR)/sdk/<(TOOLCHAIN_OS)_x86/nacl_arm_newlib',
162       },
163       'conditions': [
164         ['disable_newlib==0', {
165           'actions': [
166             {
167               'action_name': 'Prep x86 newlib toolchain',
168               'msvs_cygwin_shell': 0,
169               'description': 'Prep x86 newlib toolchain',
170               'inputs': [
171                  '<(newlib_dir)/nacl_x86_newlib.json',
172                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_newlib)',
173               ],
174               'outputs': ['<(newlib_dir)/stamp.prep'],
175               'action': [
176                 'python',
177                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
178                 '--tool', 'x86_newlib',
179                 '--path', '<(newlib_dir)',
180               ],
181             },
182           ]
183         }],
184         ['disable_glibc==0', {
185           'actions': [
186             {
187               'action_name': 'Prep x86 glibc toolchain',
188               'msvs_cygwin_shell': 0,
189               'description': 'Prep x86 glibc toolchain',
190               'inputs': [
191                  '<(glibc_dir)/nacl_x86_glibc.json',
192                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool x86_glibc)',
193               ],
194               'outputs': ['<(glibc_dir)/stamp.prep'],
195               'action': [
196                 'python',
197                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
198                 '--tool', 'x86_glibc',
199                 '--path', '<(glibc_dir)',
200               ],
201             },
202           ]
203         }],
204         ['target_arch=="arm" and disable_arm==0', {
205           'actions': [
206             {
207               'action_name': 'Prep arm toolchain',
208               'msvs_cygwin_shell': 0,
209               'description': 'Prep arm toolchain',
210               'inputs': [
211                  '<(arm_dir)/nacl_arm_newlib.json',
212                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool arm_newlib)',
213               ],
214               'outputs': ['<(arm_dir)/stamp.prep'],
215               'action': [
216                 'python',
217                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
218                 '--tool', 'arm_newlib',
219                 '--path', '<(arm_dir)',
220               ],
221             },
222           ]
223         }],
224         ['disable_pnacl==0', {
225           'actions': [
226             {
227               'action_name': 'Prep pnacl toolchain',
228               'msvs_cygwin_shell': 0,
229               'description': 'Prep pnacl toolchain',
230               'inputs': [
231                  '<(pnacl_dir)/pnacl_newlib.json',
232                  '>!@pymod_do_main(prep_nacl_sdk --inputs --tool pnacl)',
233               ],
234               'outputs': ['<(pnacl_dir)/stamp.prep'],
235               'action': [
236                 'python',
237                 '<(DEPTH)/native_client/build/prep_nacl_sdk.py',
238                 '--tool', 'pnacl',
239                 '--path', '<(pnacl_dir)',
240               ],
241             },
242           ]
243         }],
244       ]
245     },
246   ],
247   'conditions': [
248     ['target_arch=="ia32" or target_arch=="x64"', {
249       'targets' : [
250         {
251           'target_name': 'crt_init_64',
252           'type': 'none',
253           'dependencies': [
254             'untar_toolchains',
255             'prep_nacl_sdk'
256           ],
257           'variables': {
258             'nlib_target': 'crti.o',
259             'windows_asm_rule': 0,
260             'build_glibc': 0,
261             'build_newlib': 1,
262             'build_irt': 0,
263             'enable_x86_32': 0,
264             'extra_args': [
265               '--compile',
266               '--no-suffix',
267               '--strip=_x86_64'
268             ],
269           },
270           'sources': [
271             'src/untrusted/stubs/crti_x86_64.S',
272           ]
273         },
274         {
275           'target_name': 'crt_fini_64',
276           'type': 'none',
277           'dependencies': [
278             'untar_toolchains',
279             'prep_nacl_sdk'
280           ],
281           'variables': {
282             'nlib_target': 'crtn.o',
283             'windows_asm_rule': 0,
284             'build_glibc': 0,
285             'build_newlib': 1,
286             'build_irt': 0,
287             'enable_x86_32': 0,
288             'extra_args': [
289               '--compile',
290               '--no-suffix',
291               '--strip=_x86_64'
292             ],
293           },
294           'sources': [
295             'src/untrusted/stubs/crtn_x86_64.S'
296           ],
297         }
298       ],
299     }],
300     ['target_arch=="ia32" or target_arch=="x64"', {
301       'targets' : [
302         {
303           'target_name': 'crt_init_32',
304           'type': 'none',
305           'dependencies': [
306             'untar_toolchains',
307             'prep_nacl_sdk'
308           ],
309           'variables': {
310             'nlib_target': 'crti.o',
311             'windows_asm_rule': 0,
312             'build_glibc': 0,
313             'build_newlib': 1,
314             'build_irt': 1,
315             'enable_x86_64': 0,
316             'extra_args': [
317               '--compile',
318               '--no-suffix',
319               '--strip=_x86_32'
320             ],
321           },
322           'sources': [
323             'src/untrusted/stubs/crti_x86_32.S',
324           ],
325         },
326         {
327           'target_name': 'crt_fini_32',
328           'type': 'none',
329           'dependencies': [
330             'untar_toolchains',
331             'prep_nacl_sdk'
332           ],
333           'variables': {
334             'nlib_target': 'crtn.o',
335             'windows_asm_rule': 0,
336             'build_glibc': 0,
337             'build_newlib': 1,
338             'build_irt': 1,
339             'enable_x86_64': 0,
340             'extra_args': [
341               '--compile',
342               '--no-suffix',
343               '--strip=_x86_32'
344             ],
345           },
346           'sources': [
347             'src/untrusted/stubs/crtn_x86_32.S'
348           ],
349         }
350       ],
351     }],
352     ['target_arch=="arm"', {
353       'targets' : [
354         {
355           'target_name': 'crt_init_arm',
356           'type': 'none',
357           'dependencies': [
358             'untar_toolchains',
359             'prep_nacl_sdk'
360           ],
361           'variables': {
362             'nlib_target': 'crti.o',
363             'windows_asm_rule': 0,
364             'build_glibc': 0,
365             'build_newlib': 1,
366             'build_irt': 1,
367             'extra_args': [
368               '--compile',
369               '--no-suffix',
370               '--strip=_arm'
371             ],
372           },
373           'sources': [
374             'src/untrusted/stubs/crti_arm.S',
375           ],
376         },
377         {
378           'target_name': 'crt_fini_arm',
379           'type': 'none',
380           'dependencies': [
381             'untar_toolchains',
382             'prep_nacl_sdk'
383           ],
384           'variables': {
385             'nlib_target': 'crtn.o',
386             'windows_asm_rule': 0,
387             'build_glibc': 0,
388             'build_newlib': 1,
389             'build_irt': 1,
390             'extra_args': [
391               '--compile',
392               '--no-suffix',
393               '--strip=_arm'
394             ],
395           },
396           'sources': [
397             'src/untrusted/stubs/crtn_arm.S'
398           ],
399         }
400       ],
401     }],
402   ],
403 }