3 TARGETS += capabilities
12 TARGETS += intel_pstate
18 TARGETS += memory-hotplug
27 TARGETS += sigaltstack
30 TARGETS += static_keys
33 ifneq (1, $(quicktest))
40 #Please keep the TARGETS list alphabetically sorted
41 # Run "make quicktest=1 run_tests" or
42 # "make quicktest=1 kselftest" from top level Makefile
44 TARGETS_HOTPLUG = cpu-hotplug
45 TARGETS_HOTPLUG += memory-hotplug
47 # Clear LDFLAGS and MAKEFLAGS if called from main
48 # Makefile to avoid test build failures when test
49 # Makefile doesn't have explicit build rules.
55 ifneq ($(KBUILD_SRC),)
61 BUILD := $(KBUILD_OUTPUT)
69 @for TARGET in $(TARGETS); do \
70 BUILD_TARGET=$$BUILD/$$TARGET; \
71 mkdir $$BUILD_TARGET -p; \
72 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
76 @for TARGET in $(TARGETS); do \
77 BUILD_TARGET=$$BUILD/$$TARGET; \
78 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
82 @for TARGET in $(TARGETS_HOTPLUG); do \
83 BUILD_TARGET=$$BUILD/$$TARGET; \
84 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
88 @for TARGET in $(TARGETS_HOTPLUG); do \
89 BUILD_TARGET=$$BUILD/$$TARGET; \
90 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
94 @for TARGET in $(TARGETS_HOTPLUG); do \
95 BUILD_TARGET=$$BUILD/$$TARGET; \
96 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
100 make -C pstore run_crash
102 INSTALL_PATH ?= install
103 INSTALL_PATH := $(abspath $(INSTALL_PATH))
104 ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
108 @# Ask all targets to install their files
109 mkdir -p $(INSTALL_PATH)
110 @for TARGET in $(TARGETS); do \
111 BUILD_TARGET=$$BUILD/$$TARGET; \
112 make OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
115 @# Ask all targets to emit their test scripts
116 echo "#!/bin/sh" > $(ALL_SCRIPT)
117 echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
118 echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
120 for TARGET in $(TARGETS); do \
121 BUILD_TARGET=$$BUILD/$$TARGET; \
122 echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
123 echo "echo ========================================" >> $(ALL_SCRIPT); \
124 echo "cd $$TARGET" >> $(ALL_SCRIPT); \
125 make -s --no-print-directory OUTPUT=$$BUILD_TARGET -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
126 echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
129 chmod u+x $(ALL_SCRIPT)
131 $(error Error: set INSTALL_PATH to use install)
135 @for TARGET in $(TARGETS); do \
136 BUILD_TARGET=$$BUILD/$$TARGET; \
137 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
140 .PHONY: all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean