Home | History | Annotate | Download | only in pnacl_irt_shim
      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