xref: /linux/tools/testing/selftests/Makefile (revision c99ee51a9d9716fe33f5022c763728a565e3bd08)
166a01b96SAndrew MortonTARGETS = breakpoints
266a01b96SAndrew MortonTARGETS += cpu-hotplug
366a01b96SAndrew MortonTARGETS += efivarfs
496e869d8SAndrew MortonTARGETS += exec
596e869d8SAndrew MortonTARGETS += firmware
696e869d8SAndrew MortonTARGETS += ftrace
7ecac1a75SDarren HartTARGETS += futex
858c7be84SPavel EmelyanovTARGETS += kcmp
94f5ce5e8SDavid HerrmannTARGETS += memfd
1058c7be84SPavel EmelyanovTARGETS += memory-hotplug
11db181ce0SEric W. BiedermanTARGETS += mount
1296e869d8SAndrew MortonTARGETS += mqueue
13a6f68034SDavid S. MillerTARGETS += net
140e56dacdSMichael EllermanTARGETS += powerpc
1596e869d8SAndrew MortonTARGETS += ptrace
16*c99ee51aSKees CookTARGETS += seccomp
173ce51050STim BirdTARGETS += size
1896e869d8SAndrew MortonTARGETS += sysctl
1996e869d8SAndrew MortonTARGETS += timers
2096e869d8SAndrew MortonTARGETS += user
2196e869d8SAndrew MortonTARGETS += vm
223f705dfdSAndy LutomirskiTARGETS += x86
2396e869d8SAndrew Morton#Please keep the TARGETS list alphabetically sorted
24274343adSFrederic Weisbecker
25ddddda9bSShuah KhanTARGETS_HOTPLUG = cpu-hotplug
26ddddda9bSShuah KhanTARGETS_HOTPLUG += memory-hotplug
27ddddda9bSShuah Khan
2867d8712dSShuah Khan# Clear LDFLAGS and MAKEFLAGS if called from main
2967d8712dSShuah Khan# Makefile to avoid test build failures when test
3067d8712dSShuah Khan# Makefile doesn't have explicit build rules.
3167d8712dSShuah Khanifeq (1,$(MAKELEVEL))
3260df4642SArnaldo Carvalho de Melooverride LDFLAGS =
3367d8712dSShuah Khanoverride MAKEFLAGS =
3467d8712dSShuah Khanendif
3567d8712dSShuah Khan
36274343adSFrederic Weisbeckerall:
37274343adSFrederic Weisbecker	for TARGET in $(TARGETS); do \
38274343adSFrederic Weisbecker		make -C $$TARGET; \
39274343adSFrederic Weisbecker	done;
40274343adSFrederic Weisbecker
41cab6b056SAndrew Mortonrun_tests: all
42f467f714SFrederic Weisbecker	for TARGET in $(TARGETS); do \
43f467f714SFrederic Weisbecker		make -C $$TARGET run_tests; \
44f467f714SFrederic Weisbecker	done;
45f467f714SFrederic Weisbecker
46ddddda9bSShuah Khanhotplug:
47ddddda9bSShuah Khan	for TARGET in $(TARGETS_HOTPLUG); do \
48ddddda9bSShuah Khan		make -C $$TARGET; \
49ddddda9bSShuah Khan	done;
50ddddda9bSShuah Khan
51ddddda9bSShuah Khanrun_hotplug: hotplug
52ddddda9bSShuah Khan	for TARGET in $(TARGETS_HOTPLUG); do \
53ddddda9bSShuah Khan		make -C $$TARGET run_full_test; \
54ddddda9bSShuah Khan	done;
55ddddda9bSShuah Khan
56ddddda9bSShuah Khanclean_hotplug:
57ddddda9bSShuah Khan	for TARGET in $(TARGETS_HOTPLUG); do \
58ddddda9bSShuah Khan		make -C $$TARGET clean; \
59ddddda9bSShuah Khan	done;
60ddddda9bSShuah Khan
6132dcfba6SMichael EllermanINSTALL_PATH ?= install
6232dcfba6SMichael EllermanINSTALL_PATH := $(abspath $(INSTALL_PATH))
6332dcfba6SMichael EllermanALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
6432dcfba6SMichael Ellerman
6532dcfba6SMichael Ellermaninstall:
6632dcfba6SMichael Ellermanifdef INSTALL_PATH
6732dcfba6SMichael Ellerman	@# Ask all targets to install their files
6832dcfba6SMichael Ellerman	mkdir -p $(INSTALL_PATH)
6932dcfba6SMichael Ellerman	for TARGET in $(TARGETS); do \
7032dcfba6SMichael Ellerman		mkdir -p $(INSTALL_PATH)/$$TARGET ; \
7132dcfba6SMichael Ellerman		make -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
7232dcfba6SMichael Ellerman	done;
7332dcfba6SMichael Ellerman
7432dcfba6SMichael Ellerman	@# Ask all targets to emit their test scripts
7532dcfba6SMichael Ellerman	echo "#!/bin/bash" > $(ALL_SCRIPT)
7632dcfba6SMichael Ellerman	echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
7732dcfba6SMichael Ellerman	echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
7832dcfba6SMichael Ellerman
7932dcfba6SMichael Ellerman	for TARGET in $(TARGETS); do \
8032dcfba6SMichael Ellerman		echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
8132dcfba6SMichael Ellerman		echo "echo ========================================" >> $(ALL_SCRIPT); \
8232dcfba6SMichael Ellerman		echo "cd $$TARGET" >> $(ALL_SCRIPT); \
8332dcfba6SMichael Ellerman		make -s --no-print-directory -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
8432dcfba6SMichael Ellerman		echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
8532dcfba6SMichael Ellerman	done;
8632dcfba6SMichael Ellerman
8732dcfba6SMichael Ellerman	chmod u+x $(ALL_SCRIPT)
8832dcfba6SMichael Ellermanelse
8932dcfba6SMichael Ellerman	$(error Error: set INSTALL_PATH to use install)
9032dcfba6SMichael Ellermanendif
9132dcfba6SMichael Ellerman
92274343adSFrederic Weisbeckerclean:
93274343adSFrederic Weisbecker	for TARGET in $(TARGETS); do \
94274343adSFrederic Weisbecker		make -C $$TARGET clean; \
95274343adSFrederic Weisbecker	done;
9632dcfba6SMichael Ellerman
9732dcfba6SMichael Ellerman.PHONY: install
98