blob: 5cf8648f1672d0d87358d47bf0683dede25fdda4 [file] [log] [blame]
Dan Bornstein530cace2009-10-24 13:21:05 -07001# Copyright (C) 2007 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
The Android Open Source Projectb07e1d92009-03-03 19:29:30 -080014
Dan Bornstein530cace2009-10-24 13:21:05 -070015LOCAL_PATH:= $(call my-dir)
16
17#
18# Common definitions for host and device.
19#
20
21src_files := \
The Android Open Source Projectb07e1d92009-03-03 19:29:30 -080022 k_standard.c k_rem_pio2.c \
23 k_cos.c k_sin.c k_tan.c \
24 e_acos.c e_acosh.c e_asin.c e_atan2.c \
25 e_atanh.c e_cosh.c e_exp.c e_fmod.c \
26 e_gamma.c e_gamma_r.c e_hypot.c e_j0.c \
27 e_j1.c e_jn.c e_lgamma.c e_lgamma_r.c \
28 e_log.c e_log10.c e_pow.c e_rem_pio2.c e_remainder.c \
29 e_scalb.c e_sinh.c e_sqrt.c \
30 w_acos.c w_acosh.c w_asin.c w_atan2.c \
31 w_atanh.c w_cosh.c w_exp.c w_fmod.c \
32 w_gamma.c w_gamma_r.c w_hypot.c w_j0.c \
33 w_j1.c w_jn.c w_lgamma.c w_lgamma_r.c \
34 w_log.c w_log10.c w_pow.c w_remainder.c \
35 w_scalb.c w_sinh.c w_sqrt.c \
36 s_asinh.c s_atan.c s_cbrt.c s_ceil.c s_copysign.c \
37 s_cos.c s_erf.c s_expm1.c s_fabs.c s_finite.c s_floor.c \
38 s_frexp.c s_ilogb.c s_isnan.c s_ldexp.c s_lib_version.c \
39 s_log1p.c s_logb.c s_matherr.c s_modf.c s_nextafter.c \
40 s_rint.c s_scalbn.c s_signgam.c s_significand.c s_sin.c \
41 s_tan.c s_tanh.c
42
Dan Bornstein530cace2009-10-24 13:21:05 -070043# This is necessary to guarantee that the FDLIBM functions are in
44# "IEEE spirit", i.e. to guarantee that the IEEE 754 core functions
45# are used.
Chris Dearman436880f2011-05-13 15:25:03 -070046cflags := "-D_IEEE_LIBM"
The Android Open Source Projectb07e1d92009-03-03 19:29:30 -080047
Marcus Oakland67cc0e42013-09-18 10:10:05 +010048# Android only supports little-endian.
49cflags += "-D__LITTLE_ENDIAN"
50
Elliott Hughes6a0e5132011-01-27 16:09:23 -080051# Disable GCC optimizations that interact badly with this crufty
52# library (see their own admission in 'readme'). Without this, we
53# fail StrictMath tests on x86.
54cflags += "-fno-strict-aliasing"
55cflags += "-ffloat-store"
56
Serban Constantinescua418ed72014-10-06 15:49:37 +010057# c99 specifies a less relaxed floating point model that does not enable
58# floating point expession contraction (e.g: fused multiply-add operations).
59cflags += "-std=c99"
The Android Open Source Projectb07e1d92009-03-03 19:29:30 -080060
Dan Bornstein530cace2009-10-24 13:21:05 -070061#
62# Build for the target (device).
63#
64
65include $(CLEAR_VARS)
Dan Bornstein530cace2009-10-24 13:21:05 -070066LOCAL_SRC_FILES:= $(src_files)
67LOCAL_CFLAGS := $(cflags)
Dan Bornstein530cace2009-10-24 13:21:05 -070068LOCAL_MODULE := libfdlibm
Chris Dearman436880f2011-05-13 15:25:03 -070069LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
The Android Open Source Projectb07e1d92009-03-03 19:29:30 -080070include $(BUILD_STATIC_LIBRARY)
Dan Bornstein530cace2009-10-24 13:21:05 -070071
72
73#
74# Build for the host.
75#
76
Ian Rogers6948acb2014-05-23 11:12:29 -070077include $(CLEAR_VARS)
78LOCAL_SRC_FILES:= $(src_files)
79LOCAL_CFLAGS := $(cflags)
80LOCAL_MODULE := libfdlibm
81LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
Ian Rogers22b981c2014-06-24 20:58:53 -070082LOCAL_MULTILIB := both
Ian Rogers6948acb2014-05-23 11:12:29 -070083include $(BUILD_HOST_STATIC_LIBRARY)