1*1fd5a2e1SPrashanth Swaminathan// Copyright (C) 2017 The Android Open Source Project 2*1fd5a2e1SPrashanth Swaminathan// 3*1fd5a2e1SPrashanth Swaminathan// Licensed under the Apache License, Version 2.0 (the "License"); 4*1fd5a2e1SPrashanth Swaminathan// you may not use this file except in compliance with the License. 5*1fd5a2e1SPrashanth Swaminathan// You may obtain a copy of the License at 6*1fd5a2e1SPrashanth Swaminathan// 7*1fd5a2e1SPrashanth Swaminathan// http://www.apache.org/licenses/LICENSE-2.0 8*1fd5a2e1SPrashanth Swaminathan// 9*1fd5a2e1SPrashanth Swaminathan// Unless required by applicable law or agreed to in writing, software 10*1fd5a2e1SPrashanth Swaminathan// distributed under the License is distributed on an "AS IS" BASIS, 11*1fd5a2e1SPrashanth Swaminathan// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*1fd5a2e1SPrashanth Swaminathan// See the License for the specific language governing permissions and 13*1fd5a2e1SPrashanth Swaminathan// limitations under the License. 14*1fd5a2e1SPrashanth Swaminathan 15*1fd5a2e1SPrashanth Swaminathanpackage { 16*1fd5a2e1SPrashanth Swaminathan default_applicable_licenses: ["external_libffi_license"], 17*1fd5a2e1SPrashanth Swaminathan} 18*1fd5a2e1SPrashanth Swaminathan 19*1fd5a2e1SPrashanth Swaminathan// Added automatically by a large-scale-change that took the approach of 20*1fd5a2e1SPrashanth Swaminathan// 'apply every license found to every target'. While this makes sure we respect 21*1fd5a2e1SPrashanth Swaminathan// every license restriction, it may not be entirely correct. 22*1fd5a2e1SPrashanth Swaminathan// 23*1fd5a2e1SPrashanth Swaminathan// e.g. GPL in an MIT project might only apply to the contrib/ directory. 24*1fd5a2e1SPrashanth Swaminathan// 25*1fd5a2e1SPrashanth Swaminathan// Please consider splitting the single license below into multiple licenses, 26*1fd5a2e1SPrashanth Swaminathan// taking care not to lose any license_kind information, and overriding the 27*1fd5a2e1SPrashanth Swaminathan// default license using the 'licenses: [...]' property on targets as needed. 28*1fd5a2e1SPrashanth Swaminathan// 29*1fd5a2e1SPrashanth Swaminathan// For unused files, consider creating a 'fileGroup' with "//visibility:private" 30*1fd5a2e1SPrashanth Swaminathan// to attach the license to, and including a comment whether the files may be 31*1fd5a2e1SPrashanth Swaminathan// used in the current project. 32*1fd5a2e1SPrashanth Swaminathan// 33*1fd5a2e1SPrashanth Swaminathan// large-scale-change included anything that looked like it might be a license 34*1fd5a2e1SPrashanth Swaminathan// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 35*1fd5a2e1SPrashanth Swaminathan// 36*1fd5a2e1SPrashanth Swaminathan// Please consider removing redundant or irrelevant files from 'license_text:'. 37*1fd5a2e1SPrashanth Swaminathan// See: http://go/android-license-faq 38*1fd5a2e1SPrashanth Swaminathanlicense { 39*1fd5a2e1SPrashanth Swaminathan name: "external_libffi_license", 40*1fd5a2e1SPrashanth Swaminathan visibility: [":__subpackages__"], 41*1fd5a2e1SPrashanth Swaminathan license_kinds: [ 42*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-Apache-2.0", 43*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-GPL", 44*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-GPL-2.0", 45*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-GPL-3.0", 46*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-LGPL", 47*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-LGPL-2.1", 48*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-MIT", 49*1fd5a2e1SPrashanth Swaminathan "SPDX-license-identifier-MPL", 50*1fd5a2e1SPrashanth Swaminathan "legacy_unencumbered", 51*1fd5a2e1SPrashanth Swaminathan ], 52*1fd5a2e1SPrashanth Swaminathan license_text: [ 53*1fd5a2e1SPrashanth Swaminathan "LICENSE", 54*1fd5a2e1SPrashanth Swaminathan "LICENSE-BUILDTOOLS", 55*1fd5a2e1SPrashanth Swaminathan ], 56*1fd5a2e1SPrashanth Swaminathan} 57*1fd5a2e1SPrashanth Swaminathan 58*1fd5a2e1SPrashanth Swaminathangenrule { 59*1fd5a2e1SPrashanth Swaminathan name: "ffi_header", 60*1fd5a2e1SPrashanth Swaminathan cmd: "$(location gen_ffi_header.sh) < $(in) > $(out)", 61*1fd5a2e1SPrashanth Swaminathan srcs: ["include/ffi.h.in"], 62*1fd5a2e1SPrashanth Swaminathan out: ["ffi_gen.h"], 63*1fd5a2e1SPrashanth Swaminathan tool_files: ["gen_ffi_header.sh"], 64*1fd5a2e1SPrashanth Swaminathan} 65*1fd5a2e1SPrashanth Swaminathan 66*1fd5a2e1SPrashanth Swaminathancc_library { 67*1fd5a2e1SPrashanth Swaminathan name: "libffi", 68*1fd5a2e1SPrashanth Swaminathan host_supported: true, 69*1fd5a2e1SPrashanth Swaminathan vendor_available: true, 70*1fd5a2e1SPrashanth Swaminathan cflags: [ 71*1fd5a2e1SPrashanth Swaminathan "-Wall", 72*1fd5a2e1SPrashanth Swaminathan "-Werror", 73*1fd5a2e1SPrashanth Swaminathan 74*1fd5a2e1SPrashanth Swaminathan "-Wno-error=incompatible-pointer-types", 75*1fd5a2e1SPrashanth Swaminathan "-Wno-incompatible-pointer-types", 76*1fd5a2e1SPrashanth Swaminathan 77*1fd5a2e1SPrashanth Swaminathan "-Wno-deprecated-declarations", 78*1fd5a2e1SPrashanth Swaminathan "-Wno-missing-field-initializers", 79*1fd5a2e1SPrashanth Swaminathan "-Wno-null-pointer-arithmetic", 80*1fd5a2e1SPrashanth Swaminathan "-Wno-pointer-arith", 81*1fd5a2e1SPrashanth Swaminathan "-Wno-sign-compare", 82*1fd5a2e1SPrashanth Swaminathan "-Wno-unused-parameter", 83*1fd5a2e1SPrashanth Swaminathan "-Wno-unused-result", 84*1fd5a2e1SPrashanth Swaminathan ], 85*1fd5a2e1SPrashanth Swaminathan local_include_dirs: ["include"], 86*1fd5a2e1SPrashanth Swaminathan generated_headers: ["ffi_header"], 87*1fd5a2e1SPrashanth Swaminathan export_generated_headers: ["ffi_header"], 88*1fd5a2e1SPrashanth Swaminathan srcs: [ 89*1fd5a2e1SPrashanth Swaminathan "src/closures.c", 90*1fd5a2e1SPrashanth Swaminathan "src/debug.c", 91*1fd5a2e1SPrashanth Swaminathan "src/java_raw_api.c", 92*1fd5a2e1SPrashanth Swaminathan "src/prep_cif.c", 93*1fd5a2e1SPrashanth Swaminathan "src/raw_api.c", 94*1fd5a2e1SPrashanth Swaminathan "src/types.c", 95*1fd5a2e1SPrashanth Swaminathan ], 96*1fd5a2e1SPrashanth Swaminathan arch: { 97*1fd5a2e1SPrashanth Swaminathan arm: { 98*1fd5a2e1SPrashanth Swaminathan srcs: [ 99*1fd5a2e1SPrashanth Swaminathan "src/arm/sysv.S", 100*1fd5a2e1SPrashanth Swaminathan "src/arm/ffi.c", 101*1fd5a2e1SPrashanth Swaminathan ], 102*1fd5a2e1SPrashanth Swaminathan export_include_dirs: ["linux-arm"], 103*1fd5a2e1SPrashanth Swaminathan }, 104*1fd5a2e1SPrashanth Swaminathan arm64: { 105*1fd5a2e1SPrashanth Swaminathan srcs: [ 106*1fd5a2e1SPrashanth Swaminathan "src/aarch64/sysv.S", 107*1fd5a2e1SPrashanth Swaminathan "src/aarch64/ffi.c", 108*1fd5a2e1SPrashanth Swaminathan ], 109*1fd5a2e1SPrashanth Swaminathan export_include_dirs: ["linux-arm64"], 110*1fd5a2e1SPrashanth Swaminathan }, 111*1fd5a2e1SPrashanth Swaminathan x86: { 112*1fd5a2e1SPrashanth Swaminathan srcs: [ 113*1fd5a2e1SPrashanth Swaminathan "src/x86/ffi.c", 114*1fd5a2e1SPrashanth Swaminathan "src/x86/sysv.S", 115*1fd5a2e1SPrashanth Swaminathan ], 116*1fd5a2e1SPrashanth Swaminathan asflags: [ 117*1fd5a2e1SPrashanth Swaminathan "-DHAVE_AS_X86_PCREL", 118*1fd5a2e1SPrashanth Swaminathan "-DHAVE_AS_ASCII_PSEUDO_OP", 119*1fd5a2e1SPrashanth Swaminathan ], 120*1fd5a2e1SPrashanth Swaminathan export_include_dirs: ["linux-x86"], 121*1fd5a2e1SPrashanth Swaminathan }, 122*1fd5a2e1SPrashanth Swaminathan x86_64: { 123*1fd5a2e1SPrashanth Swaminathan srcs: [ 124*1fd5a2e1SPrashanth Swaminathan "src/x86/ffi64.c", 125*1fd5a2e1SPrashanth Swaminathan "src/x86/ffiw64.c", 126*1fd5a2e1SPrashanth Swaminathan "src/x86/unix64.S", 127*1fd5a2e1SPrashanth Swaminathan "src/x86/win64.S", 128*1fd5a2e1SPrashanth Swaminathan ], 129*1fd5a2e1SPrashanth Swaminathan asflags: [ 130*1fd5a2e1SPrashanth Swaminathan "-DHAVE_AS_X86_PCREL", 131*1fd5a2e1SPrashanth Swaminathan "-DHAVE_AS_ASCII_PSEUDO_OP", 132*1fd5a2e1SPrashanth Swaminathan ], 133*1fd5a2e1SPrashanth Swaminathan export_include_dirs: ["linux-x86_64"], 134*1fd5a2e1SPrashanth Swaminathan }, 135*1fd5a2e1SPrashanth Swaminathan riscv64: { 136*1fd5a2e1SPrashanth Swaminathan srcs: [ 137*1fd5a2e1SPrashanth Swaminathan "src/riscv/ffi.c", 138*1fd5a2e1SPrashanth Swaminathan "src/riscv/sysv.S", 139*1fd5a2e1SPrashanth Swaminathan ], 140*1fd5a2e1SPrashanth Swaminathan export_include_dirs: ["linux-riscv64"], 141*1fd5a2e1SPrashanth Swaminathan }, 142*1fd5a2e1SPrashanth Swaminathan }, 143*1fd5a2e1SPrashanth Swaminathan apex_available: [ 144*1fd5a2e1SPrashanth Swaminathan "//apex_available:platform", 145*1fd5a2e1SPrashanth Swaminathan "com.android.virt", 146*1fd5a2e1SPrashanth Swaminathan ], 147*1fd5a2e1SPrashanth Swaminathan} 148