xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/arm64/Makefile (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0
2*053f45beSAndroid Build Coastguard Worker
3*053f45beSAndroid Build Coastguard Worker# When ARCH not overridden for crosscompiling, lookup machine
4*053f45beSAndroid Build Coastguard WorkerARCH ?= $(shell uname -m 2>/dev/null || echo not)
5*053f45beSAndroid Build Coastguard Worker
6*053f45beSAndroid Build Coastguard Workerifneq (,$(filter $(ARCH),aarch64 arm64))
7*053f45beSAndroid Build Coastguard WorkerARM64_SUBTARGETS ?= tags signal pauth fp mte bti abi
8*053f45beSAndroid Build Coastguard Workerelse
9*053f45beSAndroid Build Coastguard WorkerARM64_SUBTARGETS :=
10*053f45beSAndroid Build Coastguard Workerendif
11*053f45beSAndroid Build Coastguard Worker
12*053f45beSAndroid Build Coastguard WorkerCFLAGS := -Wall -O2 -g
13*053f45beSAndroid Build Coastguard Worker
14*053f45beSAndroid Build Coastguard Worker# A proper top_srcdir is needed by KSFT(lib.mk)
15*053f45beSAndroid Build Coastguard Workertop_srcdir = $(realpath ../../../../)
16*053f45beSAndroid Build Coastguard Worker
17*053f45beSAndroid Build Coastguard Worker# Additional include paths needed by kselftest.h and local headers
18*053f45beSAndroid Build Coastguard WorkerCFLAGS += -I$(top_srcdir)/tools/testing/selftests/
19*053f45beSAndroid Build Coastguard Worker
20*053f45beSAndroid Build Coastguard WorkerCFLAGS += $(KHDR_INCLUDES)
21*053f45beSAndroid Build Coastguard Worker
22*053f45beSAndroid Build Coastguard Workerexport CFLAGS
23*053f45beSAndroid Build Coastguard Workerexport top_srcdir
24*053f45beSAndroid Build Coastguard Worker
25*053f45beSAndroid Build Coastguard Workerall:
26*053f45beSAndroid Build Coastguard Worker	@for DIR in $(ARM64_SUBTARGETS); do				\
27*053f45beSAndroid Build Coastguard Worker		BUILD_TARGET=$(OUTPUT)/$$DIR;			\
28*053f45beSAndroid Build Coastguard Worker		mkdir -p $$BUILD_TARGET;			\
29*053f45beSAndroid Build Coastguard Worker		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;		\
30*053f45beSAndroid Build Coastguard Worker	done
31*053f45beSAndroid Build Coastguard Worker
32*053f45beSAndroid Build Coastguard Workerinstall: all
33*053f45beSAndroid Build Coastguard Worker	@for DIR in $(ARM64_SUBTARGETS); do				\
34*053f45beSAndroid Build Coastguard Worker		BUILD_TARGET=$(OUTPUT)/$$DIR;			\
35*053f45beSAndroid Build Coastguard Worker		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;		\
36*053f45beSAndroid Build Coastguard Worker	done
37*053f45beSAndroid Build Coastguard Worker
38*053f45beSAndroid Build Coastguard Workerrun_tests: all
39*053f45beSAndroid Build Coastguard Worker	@for DIR in $(ARM64_SUBTARGETS); do				\
40*053f45beSAndroid Build Coastguard Worker		BUILD_TARGET=$(OUTPUT)/$$DIR;			\
41*053f45beSAndroid Build Coastguard Worker		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;		\
42*053f45beSAndroid Build Coastguard Worker	done
43*053f45beSAndroid Build Coastguard Worker
44*053f45beSAndroid Build Coastguard Worker# Avoid any output on non arm64 on emit_tests
45*053f45beSAndroid Build Coastguard Workeremit_tests: all
46*053f45beSAndroid Build Coastguard Worker	@for DIR in $(ARM64_SUBTARGETS); do				\
47*053f45beSAndroid Build Coastguard Worker		BUILD_TARGET=$(OUTPUT)/$$DIR;			\
48*053f45beSAndroid Build Coastguard Worker		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;		\
49*053f45beSAndroid Build Coastguard Worker	done
50*053f45beSAndroid Build Coastguard Worker
51*053f45beSAndroid Build Coastguard Workerclean:
52*053f45beSAndroid Build Coastguard Worker	@for DIR in $(ARM64_SUBTARGETS); do				\
53*053f45beSAndroid Build Coastguard Worker		BUILD_TARGET=$(OUTPUT)/$$DIR;			\
54*053f45beSAndroid Build Coastguard Worker		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;		\
55*053f45beSAndroid Build Coastguard Worker	done
56*053f45beSAndroid Build Coastguard Worker
57*053f45beSAndroid Build Coastguard Worker.PHONY: all clean install run_tests emit_tests
58