mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-04 14:44:55 -04:00
The top level kselftest Makefile supports an option FORCE_TARGETS which causes any failures during the build to be propagated to the exit status of the top level make, useful during build testing. Currently the recursion done by the arm64 selftests ignores this option, meaning arm64 failures are not reported via this mechanism. Add the logic to implement FORCE_TARGETS so that it works for arm64. Signed-off-by: Mark Brown <broonie@kernel.org> Acked-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: Will Deacon <will@kernel.org>
64 lines
1.5 KiB
Makefile
64 lines
1.5 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
# When ARCH not overridden for crosscompiling, lookup machine
|
|
ARCH ?= $(shell uname -m 2>/dev/null || echo not)
|
|
|
|
ifneq (,$(filter $(ARCH),aarch64 arm64))
|
|
ARM64_SUBTARGETS ?= tags signal pauth fp mte bti abi gcs
|
|
else
|
|
ARM64_SUBTARGETS :=
|
|
endif
|
|
|
|
CFLAGS := -Wall -O2 -g
|
|
|
|
# A proper top_srcdir is needed by KSFT(lib.mk)
|
|
top_srcdir = $(realpath ../../../../)
|
|
|
|
# Additional include paths needed by kselftest.h and local headers
|
|
CFLAGS += -I$(top_srcdir)/tools/testing/selftests/
|
|
|
|
CFLAGS += $(KHDR_INCLUDES)
|
|
|
|
CFLAGS += -I$(top_srcdir)/tools/include
|
|
|
|
OUTPUT ?= $(CURDIR)
|
|
|
|
export CFLAGS
|
|
export top_srcdir
|
|
|
|
all:
|
|
@for DIR in $(ARM64_SUBTARGETS); do \
|
|
BUILD_TARGET=$(OUTPUT)/$$DIR; \
|
|
mkdir -p $$BUILD_TARGET; \
|
|
make OUTPUT=$$BUILD_TARGET -C $$DIR $@ \
|
|
$(if $(FORCE_TARGETS),|| exit); \
|
|
done
|
|
|
|
install: all
|
|
@for DIR in $(ARM64_SUBTARGETS); do \
|
|
BUILD_TARGET=$(OUTPUT)/$$DIR; \
|
|
make OUTPUT=$$BUILD_TARGET -C $$DIR $@ \
|
|
$(if $(FORCE_TARGETS),|| exit); \
|
|
done
|
|
|
|
run_tests: all
|
|
@for DIR in $(ARM64_SUBTARGETS); do \
|
|
BUILD_TARGET=$(OUTPUT)/$$DIR; \
|
|
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
|
|
done
|
|
|
|
# Avoid any output on non arm64 on emit_tests
|
|
emit_tests:
|
|
@for DIR in $(ARM64_SUBTARGETS); do \
|
|
BUILD_TARGET=$(OUTPUT)/$$DIR; \
|
|
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
|
|
done
|
|
|
|
clean:
|
|
@for DIR in $(ARM64_SUBTARGETS); do \
|
|
BUILD_TARGET=$(OUTPUT)/$$DIR; \
|
|
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
|
|
done
|
|
|
|
.PHONY: all clean install run_tests emit_tests
|