//
// Copyright (C) 2016 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.
//

// Include the generated rules
build = ["gen.bp"]

genrule {
    name: "ltp_linux_syscall_numbers",
    tool_files: ["testcases/kernel/include/regen.sh"],
    cmd: "$(location) $(genDir)/linux_syscall_numbers.h",
    srcs: ["testcases/kernel/include/*.in"],
    out: ["linux_syscall_numbers.h"],
}

cc_defaults {
    name: "ltp_defaults",

    cflags: [
        // Hacks for bionic compatibility
        "-include bionic-compat.h",

        // Silence noisy warnings
        "-Wno-deprecated",
        "-Wno-format",
        "-Wno-gnu-designator",
        "-Wno-macro-redefined",
        "-Wno-missing-field-initializers",
        "-Wno-parentheses-equality",
        "-Wno-pointer-arith",
        "-Wno-sign-compare",
        "-Wno-unused-parameter",
    ],

    local_include_dirs: [
        "android/include",
        "include",
    ],

    target: {
        // bionic has broken signal handling for signum > 32 on 32-bit ARM and x86
        // (for ABI reasons this can't be fixed)
        android_arm: {
            cflags: ["-DNUMSIGS=32"],
        },
        android_x86: {
            cflags: ["-DNUMSIGS=32"],
        },
    },

    generated_headers: ["ltp_linux_syscall_numbers"],

    static_libs: ["libcap"],

    // TODO: recover libaio when the external project created
    shared_libs: ["libselinux"],
}

cc_defaults {
    name: "ltp_test_defaults",
    defaults: ["ltp_defaults"],
    gtest: false,
    no_named_install_directory: true,
    relative_install_path: "ltp/testcases/bin",
}
