131914882SAlex Richardson# Makefile fragment - requires GNU make 231914882SAlex Richardson# 3*f3087befSAndrew Turner# Copyright (c) 2019-2024, Arm Limited. 4072a4ba8SAndrew Turner# SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception 531914882SAlex Richardson 6*f3087befSAndrew Turner.SECONDEXPANSION: 731914882SAlex Richardson 8*f3087befSAndrew Turnerifneq ($(OS),Linux) 9*f3087befSAndrew Turner ifeq ($(WANT_SIMD_EXCEPT),1) 10*f3087befSAndrew Turner $(error WANT_SIMD_EXCEPT is not supported outside Linux) 11*f3087befSAndrew Turner endif 12*f3087befSAndrew Turner ifneq ($(USE_MPFR),1) 13*f3087befSAndrew Turner $(warning WARNING: Double-precision ULP tests will not be usable without MPFR) 14*f3087befSAndrew Turner endif 15*f3087befSAndrew Turner ifeq ($(USE_GLIBC_ABI),1) 16*f3087befSAndrew Turner $(error Can only generate special GLIBC symbols on Linux - please disable USE_GLIBC_ABI) 17*f3087befSAndrew Turner endif 18*f3087befSAndrew Turnerendif 19*f3087befSAndrew Turner 20*f3087befSAndrew Turnerifneq ($(ARCH),aarch64) 21*f3087befSAndrew Turner ifeq ($(WANT_TRIGPI_TESTS),1) 22*f3087befSAndrew Turner $(error trigpi functions only supported on aarch64) 23*f3087befSAndrew Turner endif 24*f3087befSAndrew Turner ifeq ($(WANT_EXPERIMENTAL_MATH),1) 25*f3087befSAndrew Turner $(error Experimental math only supported on aarch64) 26*f3087befSAndrew Turner endif 27*f3087befSAndrew Turnerendif 28*f3087befSAndrew Turner 29*f3087befSAndrew Turnermath-src-dir := $(srcdir)/math 30*f3087befSAndrew Turnermath-build-dir := build/math 31*f3087befSAndrew Turner 32*f3087befSAndrew Turnermath-lib-srcs := $(wildcard $(math-src-dir)/*.[cS]) 33*f3087befSAndrew Turnermath-lib-srcs += $(wildcard $(math-src-dir)/$(ARCH)/*.[cS]) 34*f3087befSAndrew Turnerifeq ($(OS),Linux) 35*f3087befSAndrew Turner# Vector symbols only supported on Linux 36*f3087befSAndrew Turnermath-lib-srcs += $(wildcard $(math-src-dir)/$(ARCH)/*/*.[cS]) 37*f3087befSAndrew Turnerendif 38*f3087befSAndrew Turner 39*f3087befSAndrew Turnerifeq ($(WANT_EXPERIMENTAL_MATH), 1) 40*f3087befSAndrew Turnerifeq ($(OS),Linux) 41*f3087befSAndrew Turner# Vector symbols only supported on Linux 42*f3087befSAndrew Turnermath-lib-srcs += $(wildcard $(math-src-dir)/$(ARCH)/experimental/*/*.[cS]) 43*f3087befSAndrew Turnerelse 44*f3087befSAndrew Turnermath-lib-srcs += $(wildcard $(math-src-dir)/$(ARCH)/experimental/*.[cS]) 45*f3087befSAndrew Turnerendif 46*f3087befSAndrew Turnerelse 47*f3087befSAndrew Turner# Scalar experimental symbols will have been added by wildcard, so remove them 48*f3087befSAndrew Turnermath-lib-srcs := $(filter-out $(math-src-dir)/aarch64/experimental/%, $(math-lib-srcs)) 49*f3087befSAndrew Turnerendif 505a02ffc3SAndrew Turner 5131914882SAlex Richardsonmath-test-srcs := \ 52*f3087befSAndrew Turner $(math-src-dir)/test/mathtest.c \ 53*f3087befSAndrew Turner $(math-src-dir)/test/mathbench.c \ 54*f3087befSAndrew Turner $(math-src-dir)/test/ulp.c \ 5531914882SAlex Richardson 56*f3087befSAndrew Turnermath-test-host-srcs := $(wildcard $(math-src-dir)/test/rtest/*.[cS]) 5731914882SAlex Richardson 58*f3087befSAndrew Turnermath-includes := $(patsubst $(math-src-dir)/%,build/%,$(wildcard $(math-src-dir)/include/*.h)) 5931914882SAlex Richardson 6031914882SAlex Richardsonmath-libs := \ 6131914882SAlex Richardson build/lib/libmathlib.so \ 6231914882SAlex Richardson build/lib/libmathlib.a \ 6331914882SAlex Richardson 6431914882SAlex Richardsonmath-tools := \ 6531914882SAlex Richardson build/bin/mathtest \ 6631914882SAlex Richardson build/bin/mathbench \ 6731914882SAlex Richardson build/bin/mathbench_libc \ 6831914882SAlex Richardson build/bin/runulp.sh \ 6931914882SAlex Richardson build/bin/ulp \ 7031914882SAlex Richardson 7131914882SAlex Richardsonmath-host-tools := \ 7231914882SAlex Richardson build/bin/rtest \ 7331914882SAlex Richardson 74*f3087befSAndrew Turnermath-lib-objs := $(patsubst $(math-src-dir)/%,$(math-build-dir)/%.o,$(basename $(math-lib-srcs))) 75*f3087befSAndrew Turnermath-test-objs := $(patsubst $(math-src-dir)/%,$(math-build-dir)/%.o,$(basename $(math-test-srcs))) 76*f3087befSAndrew Turnermath-host-objs := $(patsubst $(math-src-dir)/%,$(math-build-dir)/%.o,$(basename $(math-test-host-srcs))) 7731914882SAlex Richardsonmath-target-objs := $(math-lib-objs) $(math-test-objs) 7831914882SAlex Richardsonmath-objs := $(math-target-objs) $(math-target-objs:%.o=%.os) $(math-host-objs) 7931914882SAlex Richardson 8031914882SAlex Richardsonmath-files := \ 8131914882SAlex Richardson $(math-objs) \ 8231914882SAlex Richardson $(math-libs) \ 8331914882SAlex Richardson $(math-tools) \ 8431914882SAlex Richardson $(math-host-tools) \ 85*f3087befSAndrew Turner $(math-includes) 8631914882SAlex Richardson 87*f3087befSAndrew Turnerall-math: $(math-libs) $(math-tools) $(math-includes) 8831914882SAlex Richardson 89*f3087befSAndrew Turner$(math-objs): $(math-includes) 9031914882SAlex Richardson$(math-objs): CFLAGS_ALL += $(math-cflags) 91*f3087befSAndrew Turner$(math-build-dir)/test/mathtest.o: CFLAGS_ALL += -fmath-errno 9231914882SAlex Richardson$(math-host-objs): CC = $(HOST_CC) 9331914882SAlex Richardson$(math-host-objs): CFLAGS_ALL = $(HOST_CFLAGS) 9431914882SAlex Richardson 95*f3087befSAndrew Turner# Add include path for experimental routines so they can share helpers with non-experimental 96*f3087befSAndrew Turner$(math-build-dir)/aarch64/experimental/advsimd/%: CFLAGS_ALL += -I$(math-src-dir)/aarch64/advsimd 97*f3087befSAndrew Turner$(math-build-dir)/aarch64/experimental/sve/%: CFLAGS_ALL += -I$(math-src-dir)/aarch64/sve 98*f3087befSAndrew Turner 99*f3087befSAndrew Turner$(math-objs): CFLAGS_ALL += -I$(math-src-dir) 100*f3087befSAndrew Turner 101*f3087befSAndrew Turnerulp-funcs-dir = build/test/ulp-funcs/ 102*f3087befSAndrew Turnerulp-wrappers-dir = build/test/ulp-wrappers/ 103*f3087befSAndrew Turnermathbench-funcs-dir = build/test/mathbench-funcs/ 104*f3087befSAndrew Turnertest-sig-dirs = $(ulp-funcs-dir) $(ulp-wrappers-dir) $(mathbench-funcs-dir) 105*f3087befSAndrew Turnerbuild/include/test $(test-sig-dirs) $(addsuffix /$(ARCH),$(test-sig-dirs)) $(addsuffix /aarch64/experimental,$(test-sig-dirs)) \ 106*f3087befSAndrew Turner$(addsuffix /aarch64/experimental/advsimd,$(test-sig-dirs)) $(addsuffix /aarch64/experimental/sve,$(test-sig-dirs)) \ 107*f3087befSAndrew Turner$(addsuffix /aarch64/advsimd,$(test-sig-dirs)) $(addsuffix /aarch64/sve,$(test-sig-dirs)): 108*f3087befSAndrew Turner mkdir -p $@ 109*f3087befSAndrew Turner 110*f3087befSAndrew Turnerulp-funcs = $(patsubst $(math-src-dir)/%,$(ulp-funcs-dir)/%,$(basename $(math-lib-srcs))) 111*f3087befSAndrew Turnerulp-wrappers = $(patsubst $(math-src-dir)/%,$(ulp-wrappers-dir)/%,$(basename $(math-lib-srcs))) 112*f3087befSAndrew Turnermathbench-funcs = $(patsubst $(math-src-dir)/%,$(mathbench-funcs-dir)/%,$(basename $(math-lib-srcs))) 113*f3087befSAndrew Turner 114*f3087befSAndrew Turnerifeq ($(WANT_SVE_TESTS), 0) 115*f3087befSAndrew Turner # Filter out anything with sve in the path 116*f3087befSAndrew Turner ulp-funcs := $(foreach a,$(ulp-funcs),$(if $(findstring sve,$a),,$a)) 117*f3087befSAndrew Turner ulp-wrappers := $(foreach a,$(ulp-wrappers),$(if $(findstring sve,$a),,$a)) 118*f3087befSAndrew Turner mathbench-funcs := $(foreach a,$(mathbench-funcs),$(if $(findstring sve,$a),,$a)) 119*f3087befSAndrew Turnerendif 120*f3087befSAndrew Turner 121*f3087befSAndrew Turnerdefine emit_sig 122*f3087befSAndrew Turner$1/aarch64/experimental/sve/%.i: EXTRA_INC = -I$(math-src-dir)/aarch64/sve 123*f3087befSAndrew Turner$1/aarch64/experimental/advsimd/%.i: EXTRA_INC = -I$(math-src-dir)/aarch64/advsimd 124*f3087befSAndrew Turner$1/%.i: $(math-src-dir)/%.c | $$$$(@D) 125*f3087befSAndrew Turner $(CC) $$< $(math-cflags) -I$(math-src-dir)/include -I$(math-src-dir) $$(EXTRA_INC) -D$2 -E -o $$@ 126*f3087befSAndrew Turner$1/%: $1/%.i 127*f3087befSAndrew Turner { grep TEST_SIG $$< || true; } | cut -f 2- -d ' ' > $$@ 128*f3087befSAndrew Turnerendef 129*f3087befSAndrew Turner 130*f3087befSAndrew Turner$(eval $(call emit_sig,$(ulp-funcs-dir),EMIT_ULP_FUNCS)) 131*f3087befSAndrew Turner$(eval $(call emit_sig,$(ulp-wrappers-dir),EMIT_ULP_WRAPPERS)) 132*f3087befSAndrew Turner$(eval $(call emit_sig,$(mathbench-funcs-dir),EMIT_MATHBENCH_FUNCS)) 133*f3087befSAndrew Turner 134*f3087befSAndrew Turnerulp-funcs-gen = build/include/test/ulp_funcs_gen.h 135*f3087befSAndrew Turnerulp-wrappers-gen = build/include/test/ulp_wrappers_gen.h 136*f3087befSAndrew Turnermathbench-funcs-gen = build/include/test/mathbench_funcs_gen.h 137*f3087befSAndrew Turnermath-tools-autogen-headers = $(ulp-funcs-gen) $(ulp-wrappers-gen) $(mathbench-funcs-gen) 138*f3087befSAndrew Turner 139*f3087befSAndrew Turner$(ulp-funcs-gen): $(ulp-funcs) | $$(@D) 140*f3087befSAndrew Turner$(ulp-wrappers-gen): $(ulp-wrappers) | $$(@D) 141*f3087befSAndrew Turner$(mathbench-funcs-gen): $(mathbench-funcs) | $$(@D) 142*f3087befSAndrew Turner 143*f3087befSAndrew Turner$(math-tools-autogen-headers): | $$(@D) 144*f3087befSAndrew Turner cat $^ | sort -u > $@ 145*f3087befSAndrew Turner 146*f3087befSAndrew Turner$(math-build-dir)/test/mathbench.o: $(mathbench-funcs-gen) 147*f3087befSAndrew Turner$(math-build-dir)/test/ulp.o: $(math-src-dir)/test/ulp.h $(ulp-funcs-gen) $(ulp-wrappers-gen) 14831914882SAlex Richardson 14931914882SAlex Richardsonbuild/lib/libmathlib.so: $(math-lib-objs:%.o=%.os) 15031914882SAlex Richardson $(CC) $(CFLAGS_ALL) $(LDFLAGS) -shared -o $@ $^ 15131914882SAlex Richardson 15231914882SAlex Richardsonbuild/lib/libmathlib.a: $(math-lib-objs) 15331914882SAlex Richardson rm -f $@ 15431914882SAlex Richardson $(AR) rc $@ $^ 15531914882SAlex Richardson $(RANLIB) $@ 15631914882SAlex Richardson 157*f3087befSAndrew Turner$(math-host-tools): HOST_LDLIBS += $(libm-libs) $(mpfr-libs) $(mpc-libs) 158*f3087befSAndrew Turner$(math-tools): LDLIBS += $(math-ldlibs) $(libm-libs) 159*f3087befSAndrew Turner 160*f3087befSAndrew Turnerifneq ($(OS),Darwin) 161*f3087befSAndrew Turner $(math-tools): LDFLAGS += -static 162*f3087befSAndrew Turnerendif 16331914882SAlex Richardson 16431914882SAlex Richardsonbuild/bin/rtest: $(math-host-objs) 16531914882SAlex Richardson $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LDLIBS) 16631914882SAlex Richardson 167*f3087befSAndrew Turnerbuild/bin/mathtest: $(math-build-dir)/test/mathtest.o build/lib/libmathlib.a 168*f3087befSAndrew Turner $(CC) $(CFLAGS_ALL) $(LDFLAGS) -o $@ $^ $(libm-libs) 16931914882SAlex Richardson 170*f3087befSAndrew Turnerbuild/bin/mathbench: $(math-build-dir)/test/mathbench.o build/lib/libmathlib.a 171*f3087befSAndrew Turner $(CC) $(CFLAGS_ALL) $(LDFLAGS) -o $@ $^ $(libm-libs) 17231914882SAlex Richardson 17331914882SAlex Richardson# This is not ideal, but allows custom symbols in mathbench to get resolved. 174*f3087befSAndrew Turnerbuild/bin/mathbench_libc: $(math-build-dir)/test/mathbench.o build/lib/libmathlib.a 175*f3087befSAndrew Turner $(CC) $(CFLAGS_ALL) $(LDFLAGS) -o $@ $< $(libm-libs) $(libc-libs) build/lib/libmathlib.a $(libm-libs) 17631914882SAlex Richardson 177*f3087befSAndrew Turnerbuild/bin/ulp: $(math-build-dir)/test/ulp.o build/lib/libmathlib.a 178*f3087befSAndrew Turner $(CC) $(CFLAGS_ALL) $(LDFLAGS) -o $@ $^ $(LDLIBS) 17931914882SAlex Richardson 180*f3087befSAndrew Turnerbuild/include/%.h: $(math-src-dir)/include/%.h 18131914882SAlex Richardson cp $< $@ 18231914882SAlex Richardson 183*f3087befSAndrew Turnerbuild/bin/%.sh: $(math-src-dir)/test/%.sh 184072a4ba8SAndrew Turner cp $< $@ 185072a4ba8SAndrew Turner 186*f3087befSAndrew Turnermath-tests := $(wildcard $(math-src-dir)/test/testcases/directed/*.tst) 187*f3087befSAndrew Turnerifneq ($(WANT_EXP10_TESTS),1) 188*f3087befSAndrew Turnermath-tests := $(filter-out %exp10.tst, $(math-tests)) 189*f3087befSAndrew Turnerendif 190*f3087befSAndrew Turnermath-rtests := $(wildcard $(math-src-dir)/test/testcases/random/*.tst) 19131914882SAlex Richardson 19231914882SAlex Richardsoncheck-math-test: $(math-tools) 19331914882SAlex Richardson cat $(math-tests) | $(EMULATOR) build/bin/mathtest $(math-testflags) 19431914882SAlex Richardson 19531914882SAlex Richardsoncheck-math-rtest: $(math-host-tools) $(math-tools) 19631914882SAlex Richardson cat $(math-rtests) | build/bin/rtest | $(EMULATOR) build/bin/mathtest $(math-testflags) 19731914882SAlex Richardson 198*f3087befSAndrew Turnerulp-input-dir = $(math-build-dir)/test/inputs 199*f3087befSAndrew Turner$(ulp-input-dir) $(ulp-input-dir)/$(ARCH) $(ulp-input-dir)/aarch64/sve $(ulp-input-dir)/aarch64/advsimd \ 200*f3087befSAndrew Turner$(ulp-input-dir)/aarch64/experimental $(ulp-input-dir)/aarch64/experimental/advsimd $(ulp-input-dir)/aarch64/experimental/sve: 201*f3087befSAndrew Turner mkdir -p $@ 202*f3087befSAndrew Turner 203*f3087befSAndrew Turnermath-lib-lims = $(patsubst $(math-src-dir)/%.c,$(ulp-input-dir)/%.ulp,$(math-lib-srcs)) 204*f3087befSAndrew Turnermath-lib-lims-nn = $(patsubst $(math-src-dir)/%.c,$(ulp-input-dir)/%.ulp_nn,$(math-lib-srcs)) 205*f3087befSAndrew Turnermath-lib-fenvs = $(patsubst $(math-src-dir)/%.c,$(ulp-input-dir)/%.fenv,$(math-lib-srcs)) 206*f3087befSAndrew Turnermath-lib-itvs = $(patsubst $(math-src-dir)/%.c,$(ulp-input-dir)/%.itv,$(math-lib-srcs)) 207*f3087befSAndrew Turnermath-lib-cvals = $(patsubst $(math-src-dir)/%.c,$(ulp-input-dir)/%.cval,$(math-lib-srcs)) 208*f3087befSAndrew Turner 209*f3087befSAndrew Turnerulp-inputs = $(math-lib-lims) $(math-lib-lims-nn) $(math-lib-fenvs) $(math-lib-itvs) $(math-lib-cvals) 210*f3087befSAndrew Turner$(ulp-inputs): CFLAGS = -I$(math-src-dir)/test -I$(math-src-dir)/include -I$(math-src-dir) $(math-cflags)\ 211*f3087befSAndrew Turner -I$(math-src-dir)/aarch64/advsimd -I$(math-src-dir)/aarch64/sve 212*f3087befSAndrew Turner 213*f3087befSAndrew Turner$(ulp-input-dir)/%.ulp.i: $(math-src-dir)/%.c | $$(@D) 214*f3087befSAndrew Turner $(CC) $(CFLAGS) $< -E -o $@ 215*f3087befSAndrew Turner 216*f3087befSAndrew Turner$(ulp-input-dir)/%.ulp: $(ulp-input-dir)/%.ulp.i 217*f3087befSAndrew Turner { grep "TEST_ULP " $< || true; } > $@ 218*f3087befSAndrew Turner 219*f3087befSAndrew Turner$(ulp-input-dir)/%.ulp_nn.i: $(math-src-dir)/%.c | $$(@D) 220*f3087befSAndrew Turner $(CC) $(CFLAGS) $< -E -o $@ 221*f3087befSAndrew Turner 222*f3087befSAndrew Turner$(ulp-input-dir)/%.ulp_nn: $(ulp-input-dir)/%.ulp_nn.i 223*f3087befSAndrew Turner { grep "TEST_ULP_NONNEAREST " $< || true; } > $@ 224*f3087befSAndrew Turner 225*f3087befSAndrew Turner$(ulp-input-dir)/%.fenv.i: $(math-src-dir)/%.c | $$(@D) 226*f3087befSAndrew Turner $(CC) $(CFLAGS) $< -E -o $@ 227*f3087befSAndrew Turner 228*f3087befSAndrew Turner$(ulp-input-dir)/%.fenv: $(ulp-input-dir)/%.fenv.i 229*f3087befSAndrew Turner { grep "TEST_DISABLE_FENV " $< || true; } > $@ 230*f3087befSAndrew Turner 231*f3087befSAndrew Turner$(ulp-input-dir)/%.itv.i: $(math-src-dir)/%.c | $$(@D) 232*f3087befSAndrew Turner $(CC) $(CFLAGS) $< -E -o $@ 233*f3087befSAndrew Turner 234*f3087befSAndrew Turner$(ulp-input-dir)/%.itv: $(ulp-input-dir)/%.itv.i 235*f3087befSAndrew Turner { grep "TEST_INTERVAL " $< || true; } | sed "s/ TEST_INTERVAL/\nTEST_INTERVAL/g" > $@ 236*f3087befSAndrew Turner 237*f3087befSAndrew Turner$(ulp-input-dir)/%.cval.i: $(math-src-dir)/%.c | $$(@D) 238*f3087befSAndrew Turner $(CC) $(CFLAGS) $< -E -o $@ 239*f3087befSAndrew Turner 240*f3087befSAndrew Turner$(ulp-input-dir)/%.cval: $(ulp-input-dir)/%.cval.i 241*f3087befSAndrew Turner { grep "TEST_CONTROL_VALUE " $< || true; } > $@ 242*f3087befSAndrew Turner 243*f3087befSAndrew Turnerulp-lims = $(ulp-input-dir)/limits 244*f3087befSAndrew Turner$(ulp-lims): $(math-lib-lims) 245*f3087befSAndrew Turner 246*f3087befSAndrew Turnerulp-lims-nn = $(ulp-input-dir)/limits_nn 247*f3087befSAndrew Turner$(ulp-lims-nn): $(math-lib-lims-nn) 248*f3087befSAndrew Turner 249*f3087befSAndrew Turnerfenv-exps := $(ulp-input-dir)/fenv 250*f3087befSAndrew Turner$(fenv-exps): $(math-lib-fenvs) 251*f3087befSAndrew Turner 252*f3087befSAndrew Turnergeneric-itvs = $(ulp-input-dir)/itvs 253*f3087befSAndrew Turner$(generic-itvs): $(filter-out $(ulp-input-dir)/$(ARCH)/%,$(math-lib-itvs)) 254*f3087befSAndrew Turner 255*f3087befSAndrew Turnerarch-itvs = $(ulp-input-dir)/$(ARCH)/itvs 256*f3087befSAndrew Turner$(arch-itvs): $(filter $(ulp-input-dir)/$(ARCH)/%,$(math-lib-itvs)) 257*f3087befSAndrew Turner 258*f3087befSAndrew Turnerulp-cvals := $(ulp-input-dir)/cvals 259*f3087befSAndrew Turner$(ulp-cvals): $(math-lib-cvals) 260*f3087befSAndrew Turner 261*f3087befSAndrew Turner# Remove first word, which will be TEST directive 262*f3087befSAndrew Turner$(ulp-lims) $(ulp-lims-nn) $(fenv-exps) $(arch-itvs) $(generic-itvs) $(ulp-cvals): | $$(@D) 263*f3087befSAndrew Turner sed "s/TEST_[^ ]* //g" $^ | sort -u > $@ 264*f3087befSAndrew Turner 265*f3087befSAndrew Turnercheck-math-ulp: $(ulp-lims) $(ulp-lims-nn) 266*f3087befSAndrew Turnercheck-math-ulp: $(fenv-exps) $(ulp-cvals) 267*f3087befSAndrew Turnercheck-math-ulp: $(generic-itvs) $(arch-itvs) 26831914882SAlex Richardsoncheck-math-ulp: $(math-tools) 269*f3087befSAndrew Turner ULPFLAGS="$(math-ulpflags)" \ 270*f3087befSAndrew Turner LIMITS=../../$(ulp-lims) \ 271*f3087befSAndrew Turner ARCH_ITVS=../../$(arch-itvs) \ 272*f3087befSAndrew Turner GEN_ITVS=../../$(generic-itvs) \ 273*f3087befSAndrew Turner DISABLE_FENV=../../$(fenv-exps) \ 274*f3087befSAndrew Turner CVALS=../../$(ulp-cvals) \ 275*f3087befSAndrew Turner FUNC=$(func) \ 276*f3087befSAndrew Turner WANT_EXPERIMENTAL_MATH=$(WANT_EXPERIMENTAL_MATH) \ 277*f3087befSAndrew Turner WANT_SVE_TESTS=$(WANT_SVE_TESTS) \ 278*f3087befSAndrew Turner USE_MPFR=$(USE_MPFR) \ 279*f3087befSAndrew Turner build/bin/runulp.sh $(EMULATOR) 28031914882SAlex Richardson 28131914882SAlex Richardsoncheck-math: check-math-test check-math-rtest check-math-ulp 28231914882SAlex Richardson 28331914882SAlex Richardsoninstall-math: \ 28431914882SAlex Richardson $(math-libs:build/lib/%=$(DESTDIR)$(libdir)/%) \ 28531914882SAlex Richardson $(math-includes:build/include/%=$(DESTDIR)$(includedir)/%) 28631914882SAlex Richardson 28731914882SAlex Richardsonclean-math: 28831914882SAlex Richardson rm -f $(math-files) 28931914882SAlex Richardson 29031914882SAlex Richardson.PHONY: all-math check-math-test check-math-rtest check-math-ulp check-math install-math clean-math 291