1e093256dSMark Brown# SPDX-License-Identifier: GPL-2.0
2e093256dSMark Brown
3e093256dSMark BrownCFLAGS += -I../../../../../usr/include/
4*212b0426SMark BrownTEST_GEN_PROGS := sve-ptrace sve-probe-vls vec-syscfg za-fork za-ptrace
52c94ebedSMark BrownTEST_PROGS_EXTENDED := fp-pidbench fpsimd-test fpsimd-stress \
6a0f2eb64SMark Brown	rdvl-sme rdvl-sve \
777108610SMark Brown	sve-test sve-stress \
84126bde0SMark Brown	ssve-test ssve-stress \
95aa45cc5SMark Brown	za-test za-stress \
1077108610SMark Brown	vlset
11e093256dSMark Brown
12e093256dSMark Brownall: $(TEST_GEN_PROGS) $(TEST_PROGS_EXTENDED)
13e093256dSMark Brown
14*212b0426SMark Brown# Build with nolibc to avoid effects due to libc's clone() support
152c94ebedSMark Brownfp-pidbench: fp-pidbench.S asm-utils.o
162c94ebedSMark Brown	$(CC) -nostdlib $^ -o $@
17260ea4baSMark Brownfpsimd-test: fpsimd-test.o asm-utils.o
18e093256dSMark Brown	$(CC) -nostdlib $^ -o $@
19a0f2eb64SMark Brownrdvl-sme: rdvl-sme.o rdvl.o
2077108610SMark Brownrdvl-sve: rdvl-sve.o rdvl.o
21eab281e3SMark Brownsve-ptrace: sve-ptrace.o
22b43ab36aSMark Brownsve-probe-vls: sve-probe-vls.o rdvl.o
23260ea4baSMark Brownsve-test: sve-test.o asm-utils.o
24e093256dSMark Brown	$(CC) -nostdlib $^ -o $@
254126bde0SMark Brownssve-test: sve-test.S asm-utils.o
264126bde0SMark Brown	$(CC) -DSSVE -nostdlib $^ -o $@
2795cf3f23SMark Brownvec-syscfg: vec-syscfg.o rdvl.o
28e093256dSMark Brownvlset: vlset.o
29*212b0426SMark Brownza-fork: za-fork.o za-fork-asm.o
30*212b0426SMark Brown	$(CC) -nostdlib -static $^ -o $@ -lgcc
31*212b0426SMark Brownza-fork.o: za-fork.c
32*212b0426SMark Brown	$(CC) -c -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \
33*212b0426SMark Brown		-include ../../../../include/nolibc/nolibc.h \
34*212b0426SMark Brown		-ffreestanding -Wall $^ -o $@
355aa45cc5SMark Brownza-test: za-test.o asm-utils.o
365aa45cc5SMark Brown	$(CC) -nostdlib $^ -o $@
3786c8888fSMark Brownza-ptrace: za-ptrace.o
38e093256dSMark Brown
39e093256dSMark Browninclude ../../lib.mk
40