// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

genrule {
    name: "ffi_header",
    cmd: "$(location gen_ffi_header.sh) < $(in) > $(out)",
    srcs: ["include/ffi.h.in"],
    out: ["ffi_gen.h"],
    tool_files: ["gen_ffi_header.sh"],
}

cc_library_static {
    name: "libffi",
    vendor_available: true,
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-error=incompatible-pointer-types",
        "-Wno-pointer-arith",
        "-Wno-sign-compare",
        "-Wno-unused-parameter",
    ],
    local_include_dirs: ["include"],
    generated_headers: ["ffi_header"],
    export_generated_headers: ["ffi_header"],
    srcs: [
        "src/debug.c",
        "src/java_raw_api.c",
        "src/prep_cif.c",
        "src/raw_api.c",
        "src/types.c",
    ],
    arch: {
        arm: {
            srcs: [
                "src/arm/sysv.S",
                "src/arm/ffi.c",
            ],
            export_include_dirs: ["linux-arm"],
        },
        arm64: {
            srcs: [
                "src/aarch64/sysv.S",
                "src/aarch64/ffi.c",
            ],
            export_include_dirs: ["linux-arm64"],
        },
        x86: {
            srcs: [
                "src/x86/ffi.c",
                "src/x86/sysv.S",
                "src/x86/win32.S",
            ],
            asflags: [
                "-DHAVE_AS_X86_PCREL",
                "-DHAVE_AS_ASCII_PSEUDO_OP",
            ],
            export_include_dirs: ["linux-x86"],
        },
        x86_64: {
            srcs: [
                "src/x86/ffi64.c",
                "src/x86/unix64.S",
            ],
            asflags: [
                "-DHAVE_AS_X86_PCREL",
                "-DHAVE_AS_ASCII_PSEUDO_OP",
            ],
            export_include_dirs: ["linux-x86_64"],
        },
    },
}
