1 # SPDX-License-Identifier: GPL-2.0
4 TARGETS += capabilities
13 TARGETS += intel_pstate
19 TARGETS += memory-hotplug
28 TARGETS += sigaltstack
31 TARGETS += static_keys
34 ifneq (1, $(quicktest))
41 #Please keep the TARGETS list alphabetically sorted
42 # Run "make quicktest=1 run_tests" or
43 # "make quicktest=1 kselftest" from top level Makefile
45 TARGETS_HOTPLUG = cpu-hotplug
46 TARGETS_HOTPLUG += memory-hotplug
48 # Clear LDFLAGS and MAKEFLAGS if called from main
49 # Makefile to avoid test build failures when test
50 # Makefile doesn't have explicit build rules.
56 ifneq ($(KBUILD_SRC),)
62 BUILD := $(KBUILD_OUTPUT)
70 @for TARGET in $(TARGETS); do \
71 BUILD_TARGET=$$BUILD/$$TARGET; \
72 mkdir $$BUILD_TARGET -p; \
73 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
77 @for TARGET in $(TARGETS); do \
78 BUILD_TARGET=$$BUILD/$$TARGET; \
79 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
83 @for TARGET in $(TARGETS_HOTPLUG); do \
84 BUILD_TARGET=$$BUILD/$$TARGET; \
85 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
89 @for TARGET in $(TARGETS_HOTPLUG); do \
90 BUILD_TARGET=$$BUILD/$$TARGET; \
91 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
95 @for TARGET in $(TARGETS_HOTPLUG); do \
96 BUILD_TARGET=$$BUILD/$$TARGET; \
97 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
101 make -C pstore run_crash
103 INSTALL_PATH ?= install
104 INSTALL_PATH := $(abspath $(INSTALL_PATH))
105 ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
109 @# Ask all targets to install their files
110 mkdir -p $(INSTALL_PATH)
111 @for TARGET in $(TARGETS); do \
112 BUILD_TARGET=$$BUILD/$$TARGET; \
113 make OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
116 @# Ask all targets to emit their test scripts
117 echo "#!/bin/sh" > $(ALL_SCRIPT)
118 echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
119 echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
121 for TARGET in $(TARGETS); do \
122 BUILD_TARGET=$$BUILD/$$TARGET; \
123 echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
124 echo "echo ========================================" >> $(ALL_SCRIPT); \
125 echo "cd $$TARGET" >> $(ALL_SCRIPT); \
126 make -s --no-print-directory OUTPUT=$$BUILD_TARGET -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
127 echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
130 chmod u+x $(ALL_SCRIPT)
132 $(error Error: set INSTALL_PATH to use install)
136 @for TARGET in $(TARGETS); do \
137 BUILD_TARGET=$$BUILD/$$TARGET; \
138 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
141 .PHONY: all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean