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