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