| 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))) |