Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1TARGETS = bpf
2TARGETS += breakpoints
3TARGETS += capabilities
4TARGETS += cpufreq
5TARGETS += cpu-hotplug
6TARGETS += efivarfs
7TARGETS += exec
8TARGETS += firmware
9TARGETS += ftrace
10TARGETS += futex
11TARGETS += gpio
12TARGETS += intel_pstate
13TARGETS += ipc
14TARGETS += kcmp
15TARGETS += lib
16TARGETS += membarrier
17TARGETS += memfd
18TARGETS += memory-hotplug
19TARGETS += mount
20TARGETS += mqueue
21TARGETS += net
22TARGETS += nsfs
23TARGETS += powerpc
24TARGETS += pstore
25TARGETS += ptrace
26TARGETS += seccomp
27TARGETS += sigaltstack
28TARGETS += size
29TARGETS += splice
30TARGETS += static_keys
31TARGETS += sync
32TARGETS += sysctl
33ifneq (1, $(quicktest))
34TARGETS += timers
35endif
36TARGETS += user
37TARGETS += vm
38TARGETS += x86
39TARGETS += zram
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
43
44TARGETS_HOTPLUG = cpu-hotplug
45TARGETS_HOTPLUG += memory-hotplug
46
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.
50ifeq (1,$(MAKELEVEL))
51override LDFLAGS =
52override MAKEFLAGS =
53endif
54
55BUILD := $(O)
56ifndef BUILD
57 BUILD := $(KBUILD_OUTPUT)
58endif
59ifndef BUILD
60 BUILD := $(shell pwd)
61endif
62
63export BUILD
64all:
65 for TARGET in $(TARGETS); do \
66 BUILD_TARGET=$$BUILD/$$TARGET; \
67 mkdir $$BUILD_TARGET -p; \
68 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
69 done;
70
71run_tests: all
72 for TARGET in $(TARGETS); do \
73 BUILD_TARGET=$$BUILD/$$TARGET; \
74 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
75 done;
76
77hotplug:
78 for TARGET in $(TARGETS_HOTPLUG); do \
79 BUILD_TARGET=$$BUILD/$$TARGET; \
80 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
81 done;
82
83run_hotplug: hotplug
84 for TARGET in $(TARGETS_HOTPLUG); do \
85 BUILD_TARGET=$$BUILD/$$TARGET; \
86 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
87 done;
88
89clean_hotplug:
90 for TARGET in $(TARGETS_HOTPLUG); do \
91 BUILD_TARGET=$$BUILD/$$TARGET; \
92 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
93 done;
94
95run_pstore_crash:
96 make -C pstore run_crash
97
98INSTALL_PATH ?= install
99INSTALL_PATH := $(abspath $(INSTALL_PATH))
100ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
101
102install:
103ifdef INSTALL_PATH
104 @# Ask all targets to install their files
105 mkdir -p $(INSTALL_PATH)
106 for TARGET in $(TARGETS); do \
107 BUILD_TARGET=$$BUILD/$$TARGET; \
108 make OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
109 done;
110
111 @# Ask all targets to emit their test scripts
112 echo "#!/bin/sh" > $(ALL_SCRIPT)
113 echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
114 echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
115
116 for TARGET in $(TARGETS); do \
117 BUILD_TARGET=$$BUILD/$$TARGET; \
118 echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
119 echo "echo ========================================" >> $(ALL_SCRIPT); \
120 echo "cd $$TARGET" >> $(ALL_SCRIPT); \
121 make -s --no-print-directory OUTPUT=$$BUILD_TARGET -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
122 echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
123 done;
124
125 chmod u+x $(ALL_SCRIPT)
126else
127 $(error Error: set INSTALL_PATH to use install)
128endif
129
130clean:
131 for TARGET in $(TARGETS); do \
132 BUILD_TARGET=$$BUILD/$$TARGET; \
133 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
134 done;
135
136.PHONY: all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean