162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci# A proper top_srcdir is needed by KSFT(lib.mk)
462306a36Sopenharmony_citop_srcdir = $(realpath ../../../../../)
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciCFLAGS += $(KHDR_INCLUDES)
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciTEST_GEN_PROGS := fp-stress \
962306a36Sopenharmony_ci	sve-ptrace sve-probe-vls \
1062306a36Sopenharmony_ci	vec-syscfg \
1162306a36Sopenharmony_ci	za-fork za-ptrace
1262306a36Sopenharmony_ciTEST_GEN_PROGS_EXTENDED := fp-pidbench fpsimd-test \
1362306a36Sopenharmony_ci	rdvl-sme rdvl-sve \
1462306a36Sopenharmony_ci	sve-test \
1562306a36Sopenharmony_ci	ssve-test \
1662306a36Sopenharmony_ci	za-test \
1762306a36Sopenharmony_ci	zt-ptrace \
1862306a36Sopenharmony_ci	zt-test \
1962306a36Sopenharmony_ci	vlset
2062306a36Sopenharmony_ciTEST_PROGS_EXTENDED := fpsimd-stress sve-stress ssve-stress za-stress
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciEXTRA_CLEAN += $(OUTPUT)/asm-utils.o $(OUTPUT)/rdvl.o $(OUTPUT)/za-fork-asm.o
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci# Build with nolibc to avoid effects due to libc's clone() support
2562306a36Sopenharmony_ci$(OUTPUT)/fp-pidbench: fp-pidbench.S $(OUTPUT)/asm-utils.o
2662306a36Sopenharmony_ci	$(CC) -nostdlib $^ -o $@
2762306a36Sopenharmony_ci$(OUTPUT)/fpsimd-test: fpsimd-test.S $(OUTPUT)/asm-utils.o
2862306a36Sopenharmony_ci	$(CC) -nostdlib $^ -o $@
2962306a36Sopenharmony_ci$(OUTPUT)/rdvl-sve: rdvl-sve.c $(OUTPUT)/rdvl.o
3062306a36Sopenharmony_ci$(OUTPUT)/rdvl-sme: rdvl-sme.c $(OUTPUT)/rdvl.o
3162306a36Sopenharmony_ci$(OUTPUT)/sve-ptrace: sve-ptrace.c
3262306a36Sopenharmony_ci$(OUTPUT)/sve-probe-vls: sve-probe-vls.c $(OUTPUT)/rdvl.o
3362306a36Sopenharmony_ci$(OUTPUT)/sve-test: sve-test.S $(OUTPUT)/asm-utils.o
3462306a36Sopenharmony_ci	$(CC) -nostdlib $^ -o $@
3562306a36Sopenharmony_ci$(OUTPUT)/ssve-test: sve-test.S $(OUTPUT)/asm-utils.o
3662306a36Sopenharmony_ci	$(CC) -DSSVE -nostdlib $^ -o $@
3762306a36Sopenharmony_ci$(OUTPUT)/vec-syscfg: vec-syscfg.c $(OUTPUT)/rdvl.o
3862306a36Sopenharmony_ci$(OUTPUT)/vlset: vlset.c
3962306a36Sopenharmony_ci$(OUTPUT)/za-fork: za-fork.c $(OUTPUT)/za-fork-asm.o
4062306a36Sopenharmony_ci	$(CC) -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \
4162306a36Sopenharmony_ci		-include ../../../../include/nolibc/nolibc.h -I../..\
4262306a36Sopenharmony_ci		-static -ffreestanding -Wall $^ -o $@
4362306a36Sopenharmony_ci$(OUTPUT)/za-ptrace: za-ptrace.c
4462306a36Sopenharmony_ci$(OUTPUT)/za-test: za-test.S $(OUTPUT)/asm-utils.o
4562306a36Sopenharmony_ci	$(CC) -nostdlib $^ -o $@
4662306a36Sopenharmony_ci$(OUTPUT)/zt-ptrace: zt-ptrace.c
4762306a36Sopenharmony_ci$(OUTPUT)/zt-test: zt-test.S $(OUTPUT)/asm-utils.o
4862306a36Sopenharmony_ci	$(CC) -nostdlib $^ -o $@
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciinclude ../../lib.mk
51