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. 4 5 { 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': 'shim_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 'out_pnacl_newlib_x86_32_nonsfi': '>(tc_lib_dir_pnacl_translate)/lib-x86-32-nonsfi/>(nlib_target)', 24 'build_glibc': 0, 25 'build_newlib': 0, 26 'build_pnacl_newlib': 1, 27 'pnacl_native_biased': 1, 28 'enable_x86_32': 1, 29 'enable_x86_64': 1, 30 'enable_arm': 1, 31 'enable_mips': 1, 32 'enable_x86_32_nonsfi': 1, 33 'sources': [ 34 'irt_shim_ppapi.c', 35 'pnacl_shim.c', 36 'shim_entry.c', 37 'shim_ppapi.c', 38 ], 39 'extra_args': [ 40 '--strip-debug', 41 ], 42 # Indicate that shim should not depend on unstable IRT hook interface. 43 'compile_flags': [ 44 '-DPNACL_SHIM_AOT', 45 ], 46 }, 47 'dependencies': [ 48 '<(DEPTH)/native_client/tools.gyp:prep_toolchain', 49 ], 50 }, 51 # Smaller shim library for PNaCl in-browser translation. 52 # Uses an unstable IRT hook interface to get the shim from the IRT itself. 53 # If we ever change that hook interface or change the in-IRT shim's ABI, 54 # we would need to clear the translation cache to match the new IRT. 55 { 56 'target_name': 'shim_browser', 57 'type': 'none', 58 'variables': { 59 # Same output file name as shim_aot, so that we don't need to change 60 # the linker commandlines, but output to the "for_browser" directory, 61 # and have the pnacl_support_extension copy from that directory. 62 'nlib_target': 'libpnacl_irt_shim.a', 63 'out_pnacl_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/for_browser/>(nlib_target)', 64 'out_pnacl_newlib_x86_32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/for_browser/>(nlib_target)', 65 'out_pnacl_newlib_x86_64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/for_browser/>(nlib_target)', 66 'out_pnacl_newlib_mips': '>(tc_lib_dir_pnacl_translate)/lib-mips32/for_browser/>(nlib_target)', 67 'build_glibc': 0, 68 'build_newlib': 0, 69 'build_pnacl_newlib': 1, 70 'pnacl_native_biased': 1, 71 'enable_x86_32': 1, 72 'enable_x86_64': 1, 73 'enable_arm': 1, 74 'enable_mips': 1, 75 'sources': [ 76 'shim_entry.c', 77 'shim_ppapi.c', 78 ], 79 'extra_args': [ 80 '--strip-debug', 81 ], 82 }, 83 'dependencies': [ 84 '<(DEPTH)/native_client/tools.gyp:prep_toolchain', 85 ], 86 }, 87 { 88 # Second half of shim library for PNaCl in-browser translation. 89 # This half goes into the IRT and is returned by the unstable 90 # IRT hook interface. 91 'target_name': 'shim_for_irt', 92 'type': 'none', 93 'variables': { 94 'nlib_target': 'libpnacl_irt_shim_for_irt.a', 95 'build_glibc': 0, 96 'build_newlib': 0, 97 # Unlike the above, build this the way the IRT is built so that the 98 # output library directories match the IRT linking search paths. 99 'build_irt': 1, 100 'sources': [ 101 'irt_shim_ppapi.c', 102 'pnacl_shim.c', 103 ], 104 }, 105 'dependencies': [ 106 '<(DEPTH)/native_client/tools.gyp:prep_toolchain', 107 ], 108 }, 109 ], 110 } 111