19ce12630SAndrey Konovalov# SPDX-License-Identifier: GPL-2.0 29ce12630SAndrey Konovalov 3313a4db7SCristian Marussi# When ARCH not overridden for crosscompiling, lookup machine 49ce12630SAndrey KonovalovARCH ?= $(shell uname -m 2>/dev/null || echo not) 59ce12630SAndrey Konovalov 69ce12630SAndrey Konovalovifneq (,$(filter $(ARCH),aarch64 arm64)) 7b77e995eSMark BrownARM64_SUBTARGETS ?= tags signal pauth fp mte bti abi 8313a4db7SCristian Marussielse 9313a4db7SCristian MarussiARM64_SUBTARGETS := 109ce12630SAndrey Konovalovendif 119ce12630SAndrey Konovalov 12313a4db7SCristian MarussiCFLAGS := -Wall -O2 -g 13313a4db7SCristian Marussi 14313a4db7SCristian Marussi# A proper top_srcdir is needed by KSFT(lib.mk) 15313a4db7SCristian Marussitop_srcdir = $(realpath ../../../../) 16313a4db7SCristian Marussi 17313a4db7SCristian Marussi# Additional include paths needed by kselftest.h and local headers 18313a4db7SCristian MarussiCFLAGS += -I$(top_srcdir)/tools/testing/selftests/ 19313a4db7SCristian Marussi 20*ae60e076SMark BrownCFLAGS += $(KHDR_INCLUDES) 21313a4db7SCristian Marussi 22313a4db7SCristian Marussiexport CFLAGS 23313a4db7SCristian Marussiexport top_srcdir 24313a4db7SCristian Marussi 25313a4db7SCristian Marussiall: 26313a4db7SCristian Marussi @for DIR in $(ARM64_SUBTARGETS); do \ 27313a4db7SCristian Marussi BUILD_TARGET=$(OUTPUT)/$$DIR; \ 28313a4db7SCristian Marussi mkdir -p $$BUILD_TARGET; \ 29313a4db7SCristian Marussi make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 30313a4db7SCristian Marussi done 31313a4db7SCristian Marussi 32313a4db7SCristian Marussiinstall: all 33313a4db7SCristian Marussi @for DIR in $(ARM64_SUBTARGETS); do \ 34313a4db7SCristian Marussi BUILD_TARGET=$(OUTPUT)/$$DIR; \ 35313a4db7SCristian Marussi make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 36313a4db7SCristian Marussi done 37313a4db7SCristian Marussi 38313a4db7SCristian Marussirun_tests: all 39313a4db7SCristian Marussi @for DIR in $(ARM64_SUBTARGETS); do \ 40313a4db7SCristian Marussi BUILD_TARGET=$(OUTPUT)/$$DIR; \ 41313a4db7SCristian Marussi make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 42313a4db7SCristian Marussi done 43313a4db7SCristian Marussi 44313a4db7SCristian Marussi# Avoid any output on non arm64 on emit_tests 45313a4db7SCristian Marussiemit_tests: all 46313a4db7SCristian Marussi @for DIR in $(ARM64_SUBTARGETS); do \ 47313a4db7SCristian Marussi BUILD_TARGET=$(OUTPUT)/$$DIR; \ 48313a4db7SCristian Marussi make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 49313a4db7SCristian Marussi done 50313a4db7SCristian Marussi 51313a4db7SCristian Marussiclean: 52313a4db7SCristian Marussi @for DIR in $(ARM64_SUBTARGETS); do \ 53313a4db7SCristian Marussi BUILD_TARGET=$(OUTPUT)/$$DIR; \ 54313a4db7SCristian Marussi make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 55313a4db7SCristian Marussi done 56313a4db7SCristian Marussi 57313a4db7SCristian Marussi.PHONY: all clean install run_tests emit_tests 58