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

cc_library_static {
    name: "libfdlibm",
    host_supported: true,

    srcs: [
        "k_standard.c",
        "k_rem_pio2.c",
        "k_cos.c",
        "k_sin.c",
        "k_tan.c",
        "e_acos.c",
        "e_acosh.c",
        "e_asin.c",
        "e_atan2.c",
        "e_atanh.c",
        "e_cosh.c",
        "e_exp.c",
        "e_fmod.c",
        "e_gamma.c",
        "e_gamma_r.c",
        "e_hypot.c",
        "e_j0.c",
        "e_j1.c",
        "e_jn.c",
        "e_lgamma.c",
        "e_lgamma_r.c",
        "e_log.c",
        "e_log10.c",
        "e_pow.c",
        "e_rem_pio2.c",
        "e_remainder.c",
        "e_scalb.c",
        "e_sinh.c",
        "e_sqrt.c",
        "w_acos.c",
        "w_acosh.c",
        "w_asin.c",
        "w_atan2.c",
        "w_atanh.c",
        "w_cosh.c",
        "w_exp.c",
        "w_fmod.c",
        "w_gamma.c",
        "w_gamma_r.c",
        "w_hypot.c",
        "w_j0.c",
        "w_j1.c",
        "w_jn.c",
        "w_lgamma.c",
        "w_lgamma_r.c",
        "w_log.c",
        "w_log10.c",
        "w_pow.c",
        "w_remainder.c",
        "w_scalb.c",
        "w_sinh.c",
        "w_sqrt.c",
        "s_asinh.c",
        "s_atan.c",
        "s_cbrt.c",
        "s_ceil.c",
        "s_copysign.c",
        "s_cos.c",
        "s_erf.c",
        "s_expm1.c",
        "s_fabs.c",
        "s_finite.c",
        "s_floor.c",
        "s_frexp.c",
        "s_ilogb.c",
        "s_isnan.c",
        "s_ldexp.c",
        "s_lib_version.c",
        "s_log1p.c",
        "s_logb.c",
        "s_matherr.c",
        "s_modf.c",
        "s_nextafter.c",
        "s_rint.c",
        "s_scalbn.c",
        "s_signgam.c",
        "s_significand.c",
        "s_sin.c",
        "s_tan.c",
        "s_tanh.c",
    ],

    // c99 specifies a less relaxed floating point model that does not
    // enable floating point expession contraction (e.g: fused multiply-add
    // operations).
    c_std: "c99",

    cflags: [
        // This is necessary to guarantee that the FDLIBM functions are in
        // "IEEE spirit", i.e. to guarantee that the IEEE 754 core functions
        // are used.
        "-D_IEEE_LIBM",

        // Android only supports little-endian.
        "-D__LITTLE_ENDIAN",

        // Disable compiler optimizations that interact badly with this crufty
        // library (see their own admission in 'readme'). Without this, we
        // fail StrictMath tests on x86.
        "-fno-strict-aliasing",

        // Disable warnings. We need a specific version of fdlibm and can't fix this upstream.
        "-Werror",
        "-Wno-sign-compare",
        "-Wno-dangling-else",
        "-Wno-unknown-pragmas",

        "-Wno-dangling-else",
        "-Wno-logical-op-parentheses",
        "-Wno-sometimes-uninitialized",
    ],

    apex_available: [
        "com.android.art.release",
        "com.android.art.debug",
    ],
}
