1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 2 3 # When ARCH not overridden for crosscompiling, 3 # When ARCH not overridden for crosscompiling, lookup machine 4 ARCH ?= $(shell uname -m 2>/dev/null || echo n 4 ARCH ?= $(shell uname -m 2>/dev/null || echo not) 5 5 6 ifneq (,$(filter $(ARCH),aarch64 arm64)) 6 ifneq (,$(filter $(ARCH),aarch64 arm64)) 7 ARM64_SUBTARGETS ?= tags signal pauth fp mte b 7 ARM64_SUBTARGETS ?= tags signal pauth fp mte bti abi 8 else 8 else 9 ARM64_SUBTARGETS := 9 ARM64_SUBTARGETS := 10 endif 10 endif 11 11 12 CFLAGS := -Wall -O2 -g 12 CFLAGS := -Wall -O2 -g 13 13 14 # A proper top_srcdir is needed by KSFT(lib.mk 14 # A proper top_srcdir is needed by KSFT(lib.mk) 15 top_srcdir = $(realpath ../../../../) 15 top_srcdir = $(realpath ../../../../) 16 16 17 # Additional include paths needed by kselftest 17 # Additional include paths needed by kselftest.h and local headers 18 CFLAGS += -I$(top_srcdir)/tools/testing/selfte 18 CFLAGS += -I$(top_srcdir)/tools/testing/selftests/ 19 19 20 CFLAGS += $(KHDR_INCLUDES) 20 CFLAGS += $(KHDR_INCLUDES) 21 21 22 CFLAGS += -I$(top_srcdir)/tools/include 22 CFLAGS += -I$(top_srcdir)/tools/include 23 23 24 export CFLAGS 24 export CFLAGS 25 export top_srcdir 25 export top_srcdir 26 26 27 all: 27 all: 28 @for DIR in $(ARM64_SUBTARGETS); do 28 @for DIR in $(ARM64_SUBTARGETS); do \ 29 BUILD_TARGET=$(OUTPUT)/$$DIR; 29 BUILD_TARGET=$(OUTPUT)/$$DIR; \ 30 mkdir -p $$BUILD_TARGET; 30 mkdir -p $$BUILD_TARGET; \ 31 make OUTPUT=$$BUILD_TARGET -C 31 make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 32 done 32 done 33 33 34 install: all 34 install: all 35 @for DIR in $(ARM64_SUBTARGETS); do 35 @for DIR in $(ARM64_SUBTARGETS); do \ 36 BUILD_TARGET=$(OUTPUT)/$$DIR; 36 BUILD_TARGET=$(OUTPUT)/$$DIR; \ 37 make OUTPUT=$$BUILD_TARGET -C 37 make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 38 done 38 done 39 39 40 run_tests: all 40 run_tests: all 41 @for DIR in $(ARM64_SUBTARGETS); do 41 @for DIR in $(ARM64_SUBTARGETS); do \ 42 BUILD_TARGET=$(OUTPUT)/$$DIR; 42 BUILD_TARGET=$(OUTPUT)/$$DIR; \ 43 make OUTPUT=$$BUILD_TARGET -C 43 make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 44 done 44 done 45 45 46 # Avoid any output on non arm64 on emit_tests 46 # Avoid any output on non arm64 on emit_tests 47 emit_tests: 47 emit_tests: 48 @for DIR in $(ARM64_SUBTARGETS); do 48 @for DIR in $(ARM64_SUBTARGETS); do \ 49 BUILD_TARGET=$(OUTPUT)/$$DIR; 49 BUILD_TARGET=$(OUTPUT)/$$DIR; \ 50 make OUTPUT=$$BUILD_TARGET -C 50 make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 51 done 51 done 52 52 53 clean: 53 clean: 54 @for DIR in $(ARM64_SUBTARGETS); do 54 @for DIR in $(ARM64_SUBTARGETS); do \ 55 BUILD_TARGET=$(OUTPUT)/$$DIR; 55 BUILD_TARGET=$(OUTPUT)/$$DIR; \ 56 make OUTPUT=$$BUILD_TARGET -C 56 make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ 57 done 57 done 58 58 59 .PHONY: all clean install run_tests emit_tests 59 .PHONY: all clean install run_tests emit_tests
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.