xref: /linux/tools/testing/selftests/Makefile (revision 32dcfba6f8df667e4b915e0542b33ccbc8e76fa8)
166a01b96SAndrew MortonTARGETS = breakpoints
266a01b96SAndrew MortonTARGETS += cpu-hotplug
366a01b96SAndrew MortonTARGETS += efivarfs
496e869d8SAndrew MortonTARGETS += exec
596e869d8SAndrew MortonTARGETS += firmware
696e869d8SAndrew MortonTARGETS += ftrace
758c7be84SPavel EmelyanovTARGETS += kcmp
84f5ce5e8SDavid HerrmannTARGETS += memfd
958c7be84SPavel EmelyanovTARGETS += memory-hotplug
10db181ce0SEric W. BiedermanTARGETS += mount
1196e869d8SAndrew MortonTARGETS += mqueue
12a6f68034SDavid S. MillerTARGETS += net
130e56dacdSMichael EllermanTARGETS += powerpc
1496e869d8SAndrew MortonTARGETS += ptrace
153ce51050STim BirdTARGETS += size
1696e869d8SAndrew MortonTARGETS += sysctl
1796e869d8SAndrew MortonTARGETS += timers
1896e869d8SAndrew MortonTARGETS += user
1996e869d8SAndrew MortonTARGETS += vm
2096e869d8SAndrew Morton#Please keep the TARGETS list alphabetically sorted
21274343adSFrederic Weisbecker
22ddddda9bSShuah KhanTARGETS_HOTPLUG = cpu-hotplug
23ddddda9bSShuah KhanTARGETS_HOTPLUG += memory-hotplug
24ddddda9bSShuah Khan
25274343adSFrederic Weisbeckerall:
26274343adSFrederic Weisbecker	for TARGET in $(TARGETS); do \
27274343adSFrederic Weisbecker		make -C $$TARGET; \
28274343adSFrederic Weisbecker	done;
29274343adSFrederic Weisbecker
30cab6b056SAndrew Mortonrun_tests: all
31f467f714SFrederic Weisbecker	for TARGET in $(TARGETS); do \
32f467f714SFrederic Weisbecker		make -C $$TARGET run_tests; \
33f467f714SFrederic Weisbecker	done;
34f467f714SFrederic Weisbecker
35ddddda9bSShuah Khanhotplug:
36ddddda9bSShuah Khan	for TARGET in $(TARGETS_HOTPLUG); do \
37ddddda9bSShuah Khan		make -C $$TARGET; \
38ddddda9bSShuah Khan	done;
39ddddda9bSShuah Khan
40ddddda9bSShuah Khanrun_hotplug: hotplug
41ddddda9bSShuah Khan	for TARGET in $(TARGETS_HOTPLUG); do \
42ddddda9bSShuah Khan		make -C $$TARGET run_full_test; \
43ddddda9bSShuah Khan	done;
44ddddda9bSShuah Khan
45ddddda9bSShuah Khanclean_hotplug:
46ddddda9bSShuah Khan	for TARGET in $(TARGETS_HOTPLUG); do \
47ddddda9bSShuah Khan		make -C $$TARGET clean; \
48ddddda9bSShuah Khan	done;
49ddddda9bSShuah Khan
50*32dcfba6SMichael EllermanINSTALL_PATH ?= install
51*32dcfba6SMichael EllermanINSTALL_PATH := $(abspath $(INSTALL_PATH))
52*32dcfba6SMichael EllermanALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
53*32dcfba6SMichael Ellerman
54*32dcfba6SMichael Ellermaninstall:
55*32dcfba6SMichael Ellermanifdef INSTALL_PATH
56*32dcfba6SMichael Ellerman	@# Ask all targets to install their files
57*32dcfba6SMichael Ellerman	mkdir -p $(INSTALL_PATH)
58*32dcfba6SMichael Ellerman	for TARGET in $(TARGETS); do \
59*32dcfba6SMichael Ellerman		mkdir -p $(INSTALL_PATH)/$$TARGET ; \
60*32dcfba6SMichael Ellerman		make -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
61*32dcfba6SMichael Ellerman	done;
62*32dcfba6SMichael Ellerman
63*32dcfba6SMichael Ellerman	@# Ask all targets to emit their test scripts
64*32dcfba6SMichael Ellerman	echo "#!/bin/bash" > $(ALL_SCRIPT)
65*32dcfba6SMichael Ellerman	echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
66*32dcfba6SMichael Ellerman	echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
67*32dcfba6SMichael Ellerman
68*32dcfba6SMichael Ellerman	for TARGET in $(TARGETS); do \
69*32dcfba6SMichael Ellerman		echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
70*32dcfba6SMichael Ellerman		echo "echo ========================================" >> $(ALL_SCRIPT); \
71*32dcfba6SMichael Ellerman		echo "cd $$TARGET" >> $(ALL_SCRIPT); \
72*32dcfba6SMichael Ellerman		make -s --no-print-directory -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
73*32dcfba6SMichael Ellerman		echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
74*32dcfba6SMichael Ellerman	done;
75*32dcfba6SMichael Ellerman
76*32dcfba6SMichael Ellerman	chmod u+x $(ALL_SCRIPT)
77*32dcfba6SMichael Ellermanelse
78*32dcfba6SMichael Ellerman	$(error Error: set INSTALL_PATH to use install)
79*32dcfba6SMichael Ellermanendif
80*32dcfba6SMichael Ellerman
81274343adSFrederic Weisbeckerclean:
82274343adSFrederic Weisbecker	for TARGET in $(TARGETS); do \
83274343adSFrederic Weisbecker		make -C $$TARGET clean; \
84274343adSFrederic Weisbecker	done;
85*32dcfba6SMichael Ellerman
86*32dcfba6SMichael Ellerman.PHONY: install
87