# uClibc-ng math tests
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.

# libm-test.c is a generated file used by the tests internally so skip it
TESTS_DISABLED := libm-test

# gamma (removed from TESTS, need to add "small errors are ok" machinery there)
TESTS_DISABLED += gamma
ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),)
TESTS_DISABLED += test-ldouble test-ildoubl compile_test c99_test
CFLAGS_basic-test := -DNO_LONG_DOUBLE
endif

DODIFF_rint     := 1
DODIFF_signgam  := 1

# NOTE: For basic-test we must disable the floating point optimization.
#       Only for sh architecture because in the other architecture are disabled.
ifeq ($(TARGET_ARCH),sh)
CFLAGS_basic-test += -mieee
endif
EXTRA_CFLAGS    := -fno-builtin
EXTRA_LDFLAGS   := -lm

PERL := perl

MDEPS := $(wildcard test-*.c)
$(MDEPS): libm-test.c

ULP_SUFFIX :=
ifeq ($(TARGET_ARCH),mips)
ULP_SUFFIX:=$(if $(CONFIG_MIPS_N64_ABI),64,32)
endif

TARGET_ULP := $(if $(wildcard libm-test-ulps-$(TARGET_ARCH)$(ULP_SUFFIX)),$(TARGET_ARCH)$(ULP_SUFFIX),generic)

libm-test.c: libm-test-ulps-$(TARGET_ULP) libm-test.inc gen-libm-test.pl
	$(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ULP) ./libm-test.inc -o "." 2>&1 > /dev/null

EXTRA_CLEAN := libm-test.c libm-test-ulps.h
