1e093256dSMark Brown# SPDX-License-Identifier: GPL-2.0
2e093256dSMark Brown
3*3a23a42dSMark Brown# A proper top_srcdir is needed by KSFT(lib.mk)
4*3a23a42dSMark Browntop_srcdir = $(realpath ../../../../../)
5*3a23a42dSMark Brown
6*3a23a42dSMark BrownCFLAGS += -I$(top_srcdir)/usr/include/
7*3a23a42dSMark Brown
8212b0426SMark BrownTEST_GEN_PROGS := sve-ptrace sve-probe-vls vec-syscfg za-fork za-ptrace
9a59f7a7fSMark BrownTEST_GEN_PROGS_EXTENDED := fp-pidbench fpsimd-test \
10a0f2eb64SMark Brown	rdvl-sme rdvl-sve \
11a59f7a7fSMark Brown	sve-test \
12a59f7a7fSMark Brown	ssve-test \
13a59f7a7fSMark Brown	za-test \
1477108610SMark Brown	vlset
15a59f7a7fSMark BrownTEST_PROGS_EXTENDED := fpsimd-stress sve-stress ssve-stress za-stress
16e093256dSMark Brown
17212b0426SMark Brown# Build with nolibc to avoid effects due to libc's clone() support
182c94ebedSMark Brownfp-pidbench: fp-pidbench.S asm-utils.o
192c94ebedSMark Brown	$(CC) -nostdlib $^ -o $@
20260ea4baSMark Brownfpsimd-test: fpsimd-test.o asm-utils.o
21e093256dSMark Brown	$(CC) -nostdlib $^ -o $@
22a0f2eb64SMark Brownrdvl-sme: rdvl-sme.o rdvl.o
2377108610SMark Brownrdvl-sve: rdvl-sve.o rdvl.o
24eab281e3SMark Brownsve-ptrace: sve-ptrace.o
25b43ab36aSMark Brownsve-probe-vls: sve-probe-vls.o rdvl.o
26260ea4baSMark Brownsve-test: sve-test.o asm-utils.o
27e093256dSMark Brown	$(CC) -nostdlib $^ -o $@
284126bde0SMark Brownssve-test: sve-test.S asm-utils.o
294126bde0SMark Brown	$(CC) -DSSVE -nostdlib $^ -o $@
3095cf3f23SMark Brownvec-syscfg: vec-syscfg.o rdvl.o
31e093256dSMark Brownvlset: vlset.o
32212b0426SMark Brownza-fork: za-fork.o za-fork-asm.o
33212b0426SMark Brown	$(CC) -nostdlib -static $^ -o $@ -lgcc
34212b0426SMark Brownza-fork.o: za-fork.c
35212b0426SMark Brown	$(CC) -c -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \
36212b0426SMark Brown		-include ../../../../include/nolibc/nolibc.h \
37212b0426SMark Brown		-ffreestanding -Wall $^ -o $@
385aa45cc5SMark Brownza-test: za-test.o asm-utils.o
395aa45cc5SMark Brown	$(CC) -nostdlib $^ -o $@
4086c8888fSMark Brownza-ptrace: za-ptrace.o
41e093256dSMark Brown
42e093256dSMark Browninclude ../../lib.mk
43