1# 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. 14 15LOCAL_PATH:= $(call my-dir) 16 17# 18# Common definitions for host and device. 19# 20 21src_files := \ 22 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 43# 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. 46cflags := "-D_LIB_VERSION_TYPE=\"const enum _IEEE_\"" 47 48# Disable GCC optimizations that interact badly with this crufty 49# library (see their own admission in 'readme'). Without this, we 50# fail StrictMath tests on x86. 51cflags += "-fno-strict-aliasing" 52cflags += "-ffloat-store" 53 54 55# 56# Build for the target (device). 57# 58 59include $(CLEAR_VARS) 60 61LOCAL_SRC_FILES:= $(src_files) 62LOCAL_CFLAGS := $(cflags) 63 64ifneq ($(filter $(TARGET_ARCH),arm x86),) 65 # When __LITTLE_ENDIAN is set, the source will compile for 66 # little endian cpus. 67 LOCAL_CFLAGS += "-D__LITTLE_ENDIAN" 68endif 69 70LOCAL_MODULE := libfdlibm 71 72include $(BUILD_STATIC_LIBRARY) 73 74 75# 76# Build for the host. 77# 78 79ifeq ($(WITH_HOST_DALVIK),true) 80 81 include $(CLEAR_VARS) 82 83 LOCAL_SRC_FILES:= $(src_files) 84 LOCAL_CFLAGS := $(cflags) 85 86 ifneq ($(filter $(HOST_ARCH),arm x86),) 87 # See similar section above. 88 LOCAL_CFLAGS += "-D__LITTLE_ENDIAN" 89 endif 90 91 LOCAL_MODULE := libfdlibm-host 92 93 include $(BUILD_HOST_STATIC_LIBRARY) 94 95endif 96