Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ppapi / native_client / src / untrusted / pnacl_irt_shim / pnacl_irt_shim.gyp
blobf1cc5074235ed03ef4b5895679b216eca7056aa2
1 # Copyright (c) 2012 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   'includes': [
7     '../../../../../native_client/build/untrusted.gypi',
8   ],
9   'targets': [
10     {
11       # The full library, which PNaCl uses for offline .pexe -> .nexe.
12       # We keep the target names in this file short to avoid having really long
13       # path names on Windows.
14       # https://code.google.com/p/nativeclient/issues/detail?id=3846
15       'target_name': 'aot',
16       'type': 'none',
17       'variables': {
18         'nlib_target': 'libpnacl_irt_shim.a',
19         'out_pnacl_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/>(nlib_target)',
20         'out_pnacl_newlib_x86_32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/>(nlib_target)',
21         'out_pnacl_newlib_x86_64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/>(nlib_target)',
22         'out_pnacl_newlib_mips': '>(tc_lib_dir_pnacl_translate)/lib-mips32/>(nlib_target)',
23         # TODO(hidehiko): When crrev.com/524573002 is submitted and NaCl
24         # repository is rolled out with the CL, then we can simply remove this
25         # variable, as it is no longer used.
26         'out_pnacl_newlib_x86_32_nonsfi': '>(tc_lib_dir_pnacl_translate)/lib-x86-32-nonsfi/>(nlib_target)',
27         'out_newlib32_nonsfi': '>(tc_lib_dir_pnacl_translate)/lib-x86-32-nonsfi/>(nlib_target)',
28         'out_pnacl_newlib_arm_nonsfi': '>(tc_lib_dir_pnacl_translate)/lib-arm-nonsfi/>(nlib_target)',
29         'out_newlib_arm_nonsfi': '>(tc_lib_dir_pnacl_translate)/lib-arm-nonsfi/>(nlib_target)',
30         'build_glibc': 0,
31         'build_newlib': 0,
32         'build_pnacl_newlib': 1,
33         'pnacl_native_biased': 1,
34         'enable_x86_32': 1,
35         'enable_x86_64': 1,
36         'enable_arm': 1,
37         'enable_mips': 1,
38         'enable_x86_32_nonsfi': 1,
39         'enable_arm_nonsfi': 1,
40         'sources': [
41           'irt_shim_ppapi.c',
42           'pnacl_shim.c',
43           'shim_entry.c',
44           'shim_ppapi.c',
45         ],
46         'extra_args': [
47           '--strip-debug',
48         ],
49         # Indicate that this variant of the shim library should not depend on
50         # the unstable/private IRT hook interface.
51         'compile_flags': [
52           '-DPNACL_SHIM_AOT',
53         ],
54       },
55     },
56     # Smaller shim library for PNaCl in-browser translation.
57     # Uses an unstable IRT hook interface to get the shim from the IRT itself.
58     # If we ever change that hook interface or change the in-IRT shim's ABI,
59     # we would need to clear the translation cache to match the new IRT.
60     {
61       'target_name': 'browser',
62       'type': 'none',
63       'variables': {
64         # Use a different name from the AOT variant. Have the
65         # pnacl_support_extension rename this to the canonical name when
66         # copying to the final target directory.
67         'nlib_target': 'libpnacl_irt_shim_browser.a',
68         'out_pnacl_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/>(nlib_target)',
69         'out_pnacl_newlib_x86_32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/>(nlib_target)',
70         'out_pnacl_newlib_x86_64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/>(nlib_target)',
71         'out_pnacl_newlib_mips': '>(tc_lib_dir_pnacl_translate)/lib-mips32/>(nlib_target)',
72         'build_glibc': 0,
73         'build_newlib': 0,
74         'build_pnacl_newlib': 1,
75         'pnacl_native_biased': 1,
76         'enable_x86_32': 1,
77         'enable_x86_64': 1,
78         'enable_arm': 1,
79         'enable_mips': 1,
80         'sources': [
81           'shim_entry.c',
82           'shim_ppapi.c',
83         ],
84         'extra_args': [
85           '--strip-debug',
86         ],
87       },
88     },
89     {
90       # Second half of shim library for PNaCl in-browser translation.
91       # This half goes into the IRT and is returned by the unstable
92       # IRT hook interface.
93       'target_name': 'irt',
94       'type': 'none',
95       'variables': {
96         'nlib_target': 'libpnacl_irt_shim_for_irt.a',
97         'build_glibc': 0,
98         'build_newlib': 0,
99         # Unlike the above, build this the way the IRT is built so that the
100         # output library directories match the IRT linking search paths.
101         'build_irt': 1,
102         'sources': [
103           'irt_shim_ppapi.c',
104           'pnacl_shim.c',
105         ],
106       },
107     },
108   ],