blob: d73201b6648112fbccd30dc23546c84d589aa424 [file] [log] [blame]
CFLAGS := -g -fno-short-enums -D__ANDROID__ -DANDROID -D_GNU_SOURCE -DHAVE_ALLOY
CFLAGS += -include AndroidConfig.h -D_BYTE_ORDER=_LITTLE_ENDIAN -fPIC
CFLAGS += -fgnu89-inline
ARM_FLAGS := -mcpu=cortex-a15 -mfloat-abi=hard -mthumb-interwork -mfpu=neon-vfpv4
ARM_FLAGS +=-DTM_GMTOFF=tm_gmtoff -DHAVE_ARM_TLS_REGISTER -DUSG_COMPAT=1
ARM_FLAGS +=-I$(SRC_ROOT)/arm -gdwarf-3
X86_FLAGS :=-mstackrealign -msse3 -mfpmath=sse -DUSE_SSE2 -fmessage-length=0
X86_FLAGS +=-W -Wall -Wno-unused -Winit-self -Wpointer-arith
X86_FLAGS +=-DUSE_SSE2 -DFLOATING_POINT
X86_FLAGS +=-I$(SRC_ROOT)/i386
ARM_SRCS := bsdsrc/b_exp.c bsdsrc/b_log.c bsdsrc/b_tgamma.c
ARM_SRCS += arm/fenv.c
SRCS := fpclassify.c isinf.c sincos.c
SRC_SRCS := \
e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \
e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \
e_expf.c e_fmod.c e_fmodf.c e_gamma.c e_gamma_r.c e_gammaf.c \
e_gammaf_r.c e_hypot.c e_hypotf.c e_j0.c e_j0f.c e_j1.c e_j1f.c \
e_jn.c e_jnf.c e_lgamma.c e_lgamma_r.c e_lgammaf.c e_lgammaf_r.c \
e_log.c e_log10.c e_log10f.c e_logf.c e_pow.c e_powf.c e_rem_pio2.c \
e_rem_pio2f.c e_remainder.c e_remainderf.c e_scalb.c e_scalbf.c \
e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c \
k_cos.c k_rem_pio2.c k_sin.c k_tan.c \
k_sinf.c k_cosf.c k_tanf.c \
s_asinh.c s_asinhf.c s_atan.c s_atanf.c s_cbrt.c s_cbrtf.c \
s_ceil.c s_ceilf.c s_ceill.c \
s_copysign.c s_copysignf.c s_cos.c s_cosf.c s_erf.c s_erff.c \
s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c s_fabs.c s_fabsf.c s_fdim.c \
s_finite.c s_finitef.c \
s_floor.c s_floorf.c s_floorl.c s_fma.c s_fmaf.c \
s_fmax.c s_fmaxf.c s_fmaxl.c s_fmin.c \
s_fminf.c s_fminl.c s_frexp.c s_frexpf.c s_ilogb.c s_ilogbf.c \
s_ilogbl.c s_isfinite.c s_isnan.c s_isnormal.c \
s_llrint.c s_llrintf.c s_llround.c s_llroundf.c s_llroundl.c \
s_log1p.c s_log1pf.c s_logb.c s_logbf.c s_lrint.c s_lrintf.c \
s_lround.c s_lroundf.c s_lroundl.c s_modf.c s_modff.c \
s_nearbyint.c s_nextafter.c s_nextafterf.c \
s_nexttowardf.c s_remquo.c s_remquof.c \
s_rint.c s_rintf.c s_round.c s_roundf.c s_roundl.c \
s_scalbln.c s_scalbn.c s_scalbnf.c s_signbit.c \
s_signgam.c s_significand.c s_significandf.c s_sin.c s_sinf.c s_tan.c \
s_tanf.c s_tanh.c s_tanhf.c s_trunc.c s_truncf.c s_truncl.c \
w_cabs.c w_cabsf.c w_drem.c w_dremf.c \
COMMON_SRCS = $(foreach src,$(SRC_SRCS),src/$(src)) $(SRCS)
ifeq ($(NACL_ARCH),arm)
ARCH_FLAGS:=$(ARM_FLAGS)
SOURCES:=$(COMMON_SRCS) $(ARM_SRCS)
else
ARCH_FLAGS:=$(X86_FLAGS)
SOURCES:=$(COMMON_SRCS)
endif
LIBM_OBJECTS = $(subst .c,.o,$(SOURCES))
GCC_ROOT=$(INS_ROOT)/../../lib/gcc/arm-nacl/4.8.2
DYNAMIC_LINK_FLAGS:=-nostdlib -shared -ldl -lgcc_s
$(foreach src,$(SOURCES),$(eval $(call BASIC_COMPILE_TARGET,$(basename $(src)).o,$(SRC_ROOT)/$(src),$(CC),-std=gnu99 $(CFLAGS) $(ARCH_FLAGS))))
$(eval $(call BASIC_LIB_TARGET,$(INS_ROOT)/libm.a,$(LIBM_OBJECTS),$(AR)))
$(eval $(call BASIC_LINK_TARGET,$(INS_ROOT)/libm.so,$(GCC_ROOT)/crtbeginS.o $(LIBM_OBJECTS) $(GCC_ROOT)/crtendS.o,$(CC),$(DYNAMIC_LINK_FLAGS)))