diff options
Diffstat (limited to 'pl/math/Dir.mk')
| -rw-r--r-- | pl/math/Dir.mk | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/pl/math/Dir.mk b/pl/math/Dir.mk deleted file mode 100644 index 94b26cf3309c..000000000000 --- a/pl/math/Dir.mk +++ /dev/null @@ -1,216 +0,0 @@ -# Makefile fragment - requires GNU make -# -# Copyright (c) 2019-2024, Arm Limited. -# SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception - -PLM := $(srcdir)/pl/math -AOR := $(srcdir)/math -B := build/pl/math - -pl-lib-srcs := $(wildcard $(PLM)/*.[cS]) - -ifeq ($(WANT_SVE_MATH), 0) -pl-lib-srcs := $(filter-out $(PLM)/sv_%, $(pl-lib-srcs)) -endif - -math-test-srcs := \ - $(AOR)/test/mathtest.c \ - $(AOR)/test/mathbench.c \ - $(AOR)/test/ulp.c \ - -math-test-host-srcs := $(wildcard $(AOR)/test/rtest/*.[cS]) - -pl-includes := $(patsubst $(PLM)/%,build/pl/%,$(wildcard $(PLM)/include/*.h)) -pl-test-includes := $(patsubst $(PLM)/%,build/pl/include/%,$(wildcard $(PLM)/test/*.h)) - -pl-libs := \ - build/pl/lib/libmathlib.so \ - build/pl/lib/libmathlib.a \ - -math-tools := \ - build/pl/bin/mathtest \ - build/pl/bin/mathbench \ - build/pl/bin/mathbench_libc \ - build/pl/bin/runulp.sh \ - build/pl/bin/ulp \ - -math-host-tools := \ - build/pl/bin/rtest \ - -pl-lib-objs := $(patsubst $(PLM)/%,$(B)/%.o,$(basename $(pl-lib-srcs))) -math-test-objs := $(patsubst $(AOR)/%,$(B)/%.o,$(basename $(math-test-srcs))) -math-host-objs := $(patsubst $(AOR)/%,$(B)/%.o,$(basename $(math-test-host-srcs))) -pl-target-objs := $(pl-lib-objs) $(math-test-objs) -pl-objs := $(pl-target-objs) $(pl-target-objs:%.o=%.os) $(math-host-objs) - -pl/math-files := \ - $(pl-objs) \ - $(pl-libs) \ - $(math-tools) \ - $(math-host-tools) \ - $(pl-includes) \ - $(pl-test-includes) \ - -all-pl/math: $(pl-libs) $(math-tools) $(pl-includes) $(pl-test-includes) - -$(pl-objs): $(pl-includes) $(pl-test-includes) -$(pl-objs): CFLAGS_PL += $(math-cflags) -$(B)/test/mathtest.o: CFLAGS_PL += -fmath-errno -$(math-host-objs): CC = $(HOST_CC) -$(math-host-objs): CFLAGS_PL = $(HOST_CFLAGS) - -$(B)/sv_%: CFLAGS_PL += $(math-sve-cflags) - -build/pl/include/test/ulp_funcs_gen.h: $(pl-lib-srcs) - # Replace PL_SIG - cat $^ | grep PL_SIG | $(CC) -xc - -o - -E "-DPL_SIG(v, t, a, f, ...)=_Z##v##t##a(f)" -P > $@ - -build/pl/include/test/mathbench_funcs_gen.h: $(pl-lib-srcs) - # Replace PL_SIG macros with mathbench func entries - cat $^ | grep PL_SIG | $(CC) -xc - -o - -E "-DPL_SIG(v, t, a, f, ...)=_Z##v##t##a(f, ##__VA_ARGS__)" -P > $@ - -build/pl/include/test/ulp_wrappers_gen.h: $(pl-lib-srcs) - # Replace PL_SIG macros with ULP wrapper declarations - cat $^ | grep PL_SIG | $(CC) -xc - -o - -E "-DPL_SIG(v, t, a, f, ...)=Z##v##N##t##a##_WRAP(f)" -P > $@ - -$(B)/test/ulp.o: $(AOR)/test/ulp.h build/pl/include/test/ulp_funcs_gen.h build/pl/include/test/ulp_wrappers_gen.h -$(B)/test/ulp.o: CFLAGS_PL += -I build/pl/include/test - -$(B)/test/mathbench.o: build/pl/include/test/mathbench_funcs_gen.h -$(B)/test/mathbench.o: CFLAGS_PL += -I build/pl/include/test - -build/pl/lib/libmathlib.so: $(pl-lib-objs:%.o=%.os) - $(CC) $(CFLAGS_PL) $(LDFLAGS) -shared -o $@ $^ - -build/pl/lib/libmathlib.a: $(pl-lib-objs) - rm -f $@ - $(AR) rc $@ $^ - $(RANLIB) $@ - -$(math-host-tools): HOST_LDLIBS += -lm -lmpfr -lmpc -$(math-tools): LDLIBS += $(math-ldlibs) -lm -# math-sve-cflags should be empty if WANT_SVE_MATH is not enabled -$(math-tools): CFLAGS_PL += $(math-sve-cflags) - -# Some targets to build pl/math/test from math/test sources -build/pl/math/test/%.o: $(srcdir)/math/test/%.S - $(CC) $(CFLAGS_PL) -c -o $@ $< - -build/pl/math/test/%.o: $(srcdir)/math/test/%.c - $(CC) $(CFLAGS_PL) -c -o $@ $< - -build/pl/math/test/%.os: $(srcdir)/math/test/%.S - $(CC) $(CFLAGS_PL) -c -o $@ $< - -build/pl/math/test/%.os: $(srcdir)/math/test/%.c - $(CC) $(CFLAGS_PL) -c -o $@ $< - -# Some targets to build pl/ sources using appropriate flags -build/pl/%.o: $(srcdir)/pl/%.S - $(CC) $(CFLAGS_PL) -c -o $@ $< - -build/pl/%.o: $(srcdir)/pl/%.c - $(CC) $(CFLAGS_PL) -c -o $@ $< - -build/pl/%.os: $(srcdir)/pl/%.S - $(CC) $(CFLAGS_PL) -c -o $@ $< - -build/pl/%.os: $(srcdir)/pl/%.c - $(CC) $(CFLAGS_PL) -c -o $@ $< - -build/pl/bin/rtest: $(math-host-objs) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LDLIBS) - -build/pl/bin/mathtest: $(B)/test/mathtest.o build/pl/lib/libmathlib.a - $(CC) $(CFLAGS_PL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS) - -build/pl/bin/mathbench: $(B)/test/mathbench.o build/pl/lib/libmathlib.a - $(CC) $(CFLAGS_PL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS) - -# This is not ideal, but allows custom symbols in mathbench to get resolved. -build/pl/bin/mathbench_libc: $(B)/test/mathbench.o build/pl/lib/libmathlib.a - $(CC) $(CFLAGS_PL) $(LDFLAGS) -static -o $@ $< $(LDLIBS) -lc build/pl/lib/libmathlib.a -lm - -build/pl/bin/ulp: $(B)/test/ulp.o build/pl/lib/libmathlib.a - $(CC) $(CFLAGS_PL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS) - -build/pl/include/%.h: $(PLM)/include/%.h - cp $< $@ - -build/pl/include/test/%.h: $(PLM)/test/%.h - cp $< $@ - -build/pl/bin/%.sh: $(PLM)/test/%.sh - cp $< $@ - -pl-math-tests := $(wildcard $(PLM)/test/testcases/directed/*.tst) -pl-math-rtests := $(wildcard $(PLM)/test/testcases/random/*.tst) - -check-pl/math-test: $(math-tools) - cat $(pl-math-tests) | $(EMULATOR) build/pl/bin/mathtest $(math-testflags) - -check-pl/math-rtest: $(math-host-tools) $(math-tools) - cat $(pl-math-rtests) | build/pl/bin/rtest | $(EMULATOR) build/pl/bin/mathtest $(math-testflags) - -ulp-input-dir=$(B)/test/inputs - -math-lib-lims = $(patsubst $(PLM)/%,$(ulp-input-dir)/%.ulp,$(basename $(pl-lib-srcs))) -math-lib-fenvs = $(patsubst $(PLM)/%,$(ulp-input-dir)/%.fenv,$(basename $(pl-lib-srcs))) -math-lib-itvs = $(patsubst $(PLM)/%,$(ulp-input-dir)/%.itv,$(basename $(pl-lib-srcs))) - -ulp-inputs = $(math-lib-lims) $(math-lib-fenvs) $(math-lib-itvs) - -$(ulp-inputs): CFLAGS_PL += -I$(PLM) -I$(PLM)/include $(math-cflags) - -$(ulp-input-dir)/%.ulp: $(PLM)/%.c - mkdir -p $(@D) - $(CC) -I$(PLM)/test $(CFLAGS_PL) $< -o - -E | { grep -o "PL_TEST_ULP [^ ]* [^ ]*" || true; } > $@ - -$(ulp-input-dir)/%.fenv: $(PLM)/%.c - mkdir -p $(@D) - $(CC) -I$(PLM)/test $(CFLAGS_PL) $< -o - -E | { grep -o "PL_TEST_EXPECT_FENV_ENABLED [^ ]*" || true; } > $@ - -$(ulp-input-dir)/%.itv: $(PLM)/%.c - mkdir -p $(dir $@) - $(CC) -I$(PLM)/test $(CFLAGS_PL) $< -o - -E | { grep "PL_TEST_INTERVAL " || true; } | sed "s/ PL_TEST_INTERVAL/\nPL_TEST_INTERVAL/g" > $@ - -ulp-lims := $(ulp-input-dir)/limits -$(ulp-lims): $(math-lib-lims) - cat $^ | sed "s/PL_TEST_ULP //g;s/^ *//g" > $@ - -fenv-exps := $(ulp-input-dir)/fenv -$(fenv-exps): $(math-lib-fenvs) - cat $^ | sed "s/PL_TEST_EXPECT_FENV_ENABLED //g;s/^ *//g" > $@ - -ulp-itvs := $(ulp-input-dir)/intervals -$(ulp-itvs): $(math-lib-itvs) - cat $^ | sort -u | sed "s/PL_TEST_INTERVAL //g" > $@ - -check-pl/math-ulp: $(math-tools) $(ulp-lims) $(fenv-exps) $(ulp-itvs) - WANT_SVE_MATH=$(WANT_SVE_MATH) \ - ULPFLAGS="$(math-ulpflags)" \ - LIMITS=../../../$(ulp-lims) \ - INTERVALS=../../../$(ulp-itvs) \ - FENV=../../../$(fenv-exps) \ - FUNC=$(func) \ - build/pl/bin/runulp.sh $(EMULATOR) - -check-pl/math: check-pl/math-test check-pl/math-rtest check-pl/math-ulp - -$(DESTDIR)$(libdir)/pl/%.so: build/pl/lib/%.so - $(INSTALL) -D $< $@ - -$(DESTDIR)$(libdir)/pl/%: build/pl/lib/% - $(INSTALL) -m 644 -D $< $@ - -$(DESTDIR)$(includedir)/pl/%: build/pl/include/% - $(INSTALL) -m 644 -D $< $@ - -install-pl/math: \ - $(pl-libs:build/pl/lib/%=$(DESTDIR)$(libdir)/pl/%) \ - $(pl-includes:build/pl/include/%=$(DESTDIR)$(includedir)/pl/%) - -clean-pl/math: - rm -f $(pl/math-files) - -.PHONY: all-pl/math check-pl/math-test check-pl/math-rtest check-pl/math-ulp check-pl/math install-pl/math clean-pl/math |
