2017-11-01 15:07:57 +01:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
2024-08-01 05:29:52 -04:00
|
|
|
TARGETS += acct
|
2021-12-10 18:54:08 +00:00
|
|
|
TARGETS += alsa
|
2022-08-17 11:46:29 +08:00
|
|
|
TARGETS += amd-pstate
|
2021-12-10 18:54:08 +00:00
|
|
|
TARGETS += arm64
|
2017-11-01 13:00:39 -04:00
|
|
|
TARGETS += bpf
|
2016-10-17 14:28:36 +02:00
|
|
|
TARGETS += breakpoints
|
2023-05-02 18:36:08 -07:00
|
|
|
TARGETS += cachestat
|
2015-11-17 22:35:42 +08:00
|
|
|
TARGETS += capabilities
|
2018-05-11 19:03:49 +01:00
|
|
|
TARGETS += cgroup
|
2019-10-14 12:45:38 +02:00
|
|
|
TARGETS += clone3
|
2023-07-19 13:18:21 -07:00
|
|
|
TARGETS += connector
|
2019-05-20 16:13:28 +02:00
|
|
|
TARGETS += core
|
2017-01-13 12:06:45 +05:30
|
|
|
TARGETS += cpufreq
|
2013-02-27 17:05:56 -08:00
|
|
|
TARGETS += cpu-hotplug
|
2022-04-18 20:20:17 +00:00
|
|
|
TARGETS += damon
|
2024-07-05 19:29:56 -04:00
|
|
|
TARGETS += devices/error_logs
|
2024-07-05 19:29:54 -04:00
|
|
|
TARGETS += devices/probe
|
2023-08-06 00:14:07 +01:00
|
|
|
TARGETS += dmabuf-heaps
|
2018-11-27 10:33:08 +00:00
|
|
|
TARGETS += drivers/dma-buf
|
2024-12-13 13:34:57 -06:00
|
|
|
TARGETS += drivers/ntsync
|
2022-05-10 14:47:24 +00:00
|
|
|
TARGETS += drivers/s390x/uvdevice
|
2024-04-04 19:45:25 -07:00
|
|
|
TARGETS += drivers/net
|
2022-08-19 11:15:12 -04:00
|
|
|
TARGETS += drivers/net/bonding
|
2026-01-27 19:39:20 +00:00
|
|
|
TARGETS += drivers/net/netconsole
|
2022-09-07 16:56:42 +09:00
|
|
|
TARGETS += drivers/net/team
|
2024-04-24 12:40:49 +02:00
|
|
|
TARGETS += drivers/net/virtio_net
|
2024-05-31 15:53:47 +08:00
|
|
|
TARGETS += drivers/platform/x86/intel/ifs
|
2023-08-28 17:13:12 -04:00
|
|
|
TARGETS += dt
|
2013-02-27 17:05:56 -08:00
|
|
|
TARGETS += efivarfs
|
2014-12-18 16:17:43 -08:00
|
|
|
TARGETS += exec
|
2023-07-11 18:16:07 +02:00
|
|
|
TARGETS += fchmodat2
|
2018-03-13 17:55:27 +01:00
|
|
|
TARGETS += filesystems
|
2019-01-17 12:48:54 +01:00
|
|
|
TARGETS += filesystems/binderfs
|
2019-12-04 16:52:19 -08:00
|
|
|
TARGETS += filesystems/epoll
|
2022-06-10 09:57:21 +02:00
|
|
|
TARGETS += filesystems/fat
|
2023-12-13 22:44:39 -08:00
|
|
|
TARGETS += filesystems/overlayfs
|
2023-12-13 17:11:03 +01:00
|
|
|
TARGETS += filesystems/statmount
|
2025-03-07 21:40:45 +01:00
|
|
|
TARGETS += filesystems/mount-notify
|
2025-06-10 10:10:03 +08:00
|
|
|
TARGETS += filesystems/fuse
|
2026-02-24 01:40:28 +01:00
|
|
|
TARGETS += filesystems/move_mount
|
2026-03-23 17:41:08 +01:00
|
|
|
TARGETS += filesystems/empty_mntns
|
|
|
|
|
TARGETS += filesystems/fsmount_ns
|
2014-12-18 16:17:43 -08:00
|
|
|
TARGETS += firmware
|
2020-06-18 16:37:37 +02:00
|
|
|
TARGETS += fpu
|
2014-12-18 16:17:43 -08:00
|
|
|
TARGETS += ftrace
|
2015-05-12 21:07:55 -07:00
|
|
|
TARGETS += futex
|
2016-11-21 18:16:11 +08:00
|
|
|
TARGETS += gpio
|
2022-11-03 16:57:45 +01:00
|
|
|
TARGETS += hid
|
2017-01-12 00:16:07 +09:00
|
|
|
TARGETS += intel_pstate
|
2022-11-29 16:29:42 -04:00
|
|
|
TARGETS += iommu
|
2015-11-17 22:35:43 +08:00
|
|
|
TARGETS += ipc
|
2018-10-16 15:09:31 +01:00
|
|
|
TARGETS += ir
|
2013-04-30 15:27:06 -07:00
|
|
|
TARGETS += kcmp
|
2019-03-13 10:09:10 -04:00
|
|
|
TARGETS += kexec
|
2025-05-05 17:15:19 +02:00
|
|
|
TARGETS += kselftest_harness
|
2018-03-27 11:49:19 +02:00
|
|
|
TARGETS += kvm
|
2021-04-22 17:41:20 +02:00
|
|
|
TARGETS += landlock
|
2015-11-06 16:30:32 -08:00
|
|
|
TARGETS += lib
|
2019-01-09 13:43:29 +01:00
|
|
|
TARGETS += livepatch
|
2025-11-25 11:58:46 -05:00
|
|
|
TARGETS += liveupdate
|
2020-01-09 21:02:06 -08:00
|
|
|
TARGETS += lkdtm
|
2023-09-12 13:56:56 -07:00
|
|
|
TARGETS += lsm
|
2015-09-11 13:07:42 -07:00
|
|
|
TARGETS += membarrier
|
2014-08-08 14:25:32 -07:00
|
|
|
TARGETS += memfd
|
2013-04-30 15:27:06 -07:00
|
|
|
TARGETS += memory-hotplug
|
2020-08-06 23:23:51 -07:00
|
|
|
TARGETS += mincore
|
2014-07-29 15:50:44 -07:00
|
|
|
TARGETS += mount
|
2021-01-21 14:19:55 +01:00
|
|
|
TARGETS += mount_setattr
|
2021-07-15 13:07:14 +03:00
|
|
|
TARGETS += move_mount_set_group
|
2014-12-18 16:17:43 -08:00
|
|
|
TARGETS += mqueue
|
2025-03-05 02:17:11 +00:00
|
|
|
TARGETS += mseal_system_mappings
|
2021-01-27 22:08:29 +09:00
|
|
|
TARGETS += nci
|
2013-03-20 15:07:56 -04:00
|
|
|
TARGETS += net
|
2021-08-01 00:57:07 -07:00
|
|
|
TARGETS += net/af_unix
|
2025-05-21 15:16:09 +02:00
|
|
|
TARGETS += net/can
|
2020-03-23 16:24:04 +02:00
|
|
|
TARGETS += net/forwarding
|
2022-11-29 17:48:15 +01:00
|
|
|
TARGETS += net/hsr
|
2020-01-21 16:56:29 -08:00
|
|
|
TARGETS += net/mptcp
|
2024-04-16 13:32:10 +08:00
|
|
|
TARGETS += net/netfilter
|
2024-09-05 19:15:52 -04:00
|
|
|
TARGETS += net/openvswitch
|
2025-04-15 13:17:40 +02:00
|
|
|
TARGETS += net/ovpn
|
2024-09-05 19:15:52 -04:00
|
|
|
TARGETS += net/packetdrill
|
2026-04-03 11:48:47 +08:00
|
|
|
TARGETS += net/ppp
|
2024-08-06 08:38:09 -07:00
|
|
|
TARGETS += net/rds
|
2024-09-05 19:15:52 -04:00
|
|
|
TARGETS += net/tcp_ao
|
2025-06-20 23:39:33 +02:00
|
|
|
TARGETS += nolibc
|
2016-09-06 00:47:16 -07:00
|
|
|
TARGETS += nsfs
|
2025-01-16 22:46:50 +05:30
|
|
|
TARGETS += pci_endpoint
|
2024-10-18 17:47:55 +03:00
|
|
|
TARGETS += pcie_bwctrl
|
2023-08-06 00:14:07 +01:00
|
|
|
TARGETS += perf_events
|
2018-12-29 22:27:33 +01:00
|
|
|
TARGETS += pidfd
|
2020-03-08 17:26:32 +01:00
|
|
|
TARGETS += pid_namespace
|
2024-01-31 17:48:01 -05:00
|
|
|
TARGETS += power_supply
|
2013-08-06 17:42:35 +10:00
|
|
|
TARGETS += powerpc
|
2023-03-26 00:59:02 +04:00
|
|
|
TARGETS += prctl
|
2018-04-10 16:31:45 -07:00
|
|
|
TARGETS += proc
|
2015-10-02 20:46:39 +09:00
|
|
|
TARGETS += pstore
|
2014-12-18 16:17:43 -08:00
|
|
|
TARGETS += ptrace
|
2020-01-18 23:08:00 +11:00
|
|
|
TARGETS += openat2
|
2026-03-12 19:30:58 -07:00
|
|
|
TARGETS += rdma
|
2022-03-23 17:12:25 +09:00
|
|
|
TARGETS += resctrl
|
2023-04-07 16:11:02 -07:00
|
|
|
TARGETS += riscv
|
2021-04-22 14:27:15 +02:00
|
|
|
TARGETS += rlimits
|
2018-06-02 08:44:08 -04:00
|
|
|
TARGETS += rseq
|
2018-04-19 14:50:29 +02:00
|
|
|
TARGETS += rtc
|
2024-02-29 16:52:35 +01:00
|
|
|
TARGETS += rust
|
2024-10-08 17:35:18 +02:00
|
|
|
TARGETS += sched_ext
|
2015-06-16 10:54:14 -07:00
|
|
|
TARGETS += seccomp
|
2020-11-13 00:01:31 +02:00
|
|
|
TARGETS += sgx
|
2024-10-09 10:44:23 +05:30
|
|
|
TARGETS += signal
|
2014-12-03 10:42:21 -08:00
|
|
|
TARGETS += size
|
2018-04-26 10:54:09 -06:00
|
|
|
TARGETS += sparc64
|
2017-02-18 22:07:24 -05:00
|
|
|
TARGETS += splice
|
2015-09-09 21:06:25 +08:00
|
|
|
TARGETS += static_keys
|
2016-10-19 09:49:48 -03:00
|
|
|
TARGETS += sync
|
2020-11-27 14:32:36 -05:00
|
|
|
TARGETS += syscall_user_dispatch
|
2014-12-18 16:17:43 -08:00
|
|
|
TARGETS += sysctl
|
2020-07-17 14:54:39 -07:00
|
|
|
TARGETS += tc-testing
|
2022-11-16 14:38:20 -08:00
|
|
|
TARGETS += tdx
|
2023-10-09 12:05:38 -07:00
|
|
|
TARGETS += thermal/intel/power_floor
|
2023-08-28 17:23:46 -07:00
|
|
|
TARGETS += thermal/intel/workload_hint
|
2019-11-12 01:27:17 +00:00
|
|
|
TARGETS += timens
|
2015-06-19 13:13:43 -06:00
|
|
|
ifneq (1, $(quicktest))
|
2014-12-18 16:17:43 -08:00
|
|
|
TARGETS += timers
|
2015-06-19 13:13:43 -06:00
|
|
|
endif
|
2019-03-05 15:49:24 -08:00
|
|
|
TARGETS += tmpfs
|
2019-02-04 15:16:40 +02:00
|
|
|
TARGETS += tpm2
|
2023-06-13 19:21:08 +02:00
|
|
|
TARGETS += tty
|
2025-03-01 00:19:14 +08:00
|
|
|
TARGETS += ublk
|
2023-09-27 02:03:23 +08:00
|
|
|
TARGETS += uevent
|
2023-08-06 12:29:59 +01:00
|
|
|
TARGETS += user_events
|
2020-10-26 11:49:41 +00:00
|
|
|
TARGETS += vDSO
|
2023-01-03 18:07:53 +00:00
|
|
|
TARGETS += mm
|
2025-08-22 21:24:48 +00:00
|
|
|
TARGETS += vfio
|
2015-04-06 23:11:06 -07:00
|
|
|
TARGETS += x86
|
2024-12-24 16:09:28 -08:00
|
|
|
TARGETS += x86/bugs
|
2015-08-18 12:31:59 +05:30
|
|
|
TARGETS += zram
|
2014-12-18 16:17:43 -08:00
|
|
|
#Please keep the TARGETS list alphabetically sorted
|
2015-06-19 13:13:43 -06:00
|
|
|
# Run "make quicktest=1 run_tests" or
|
2017-04-14 08:43:16 +09:00
|
|
|
# "make quicktest=1 kselftest" from top level Makefile
|
2012-01-12 17:20:44 -08:00
|
|
|
|
2014-07-02 09:51:38 -06:00
|
|
|
TARGETS_HOTPLUG = cpu-hotplug
|
|
|
|
|
TARGETS_HOTPLUG += memory-hotplug
|
|
|
|
|
|
2024-04-04 19:45:22 -07:00
|
|
|
# Networking tests want the net/lib target, include it automatically
|
2024-04-29 07:44:22 -07:00
|
|
|
ifneq ($(filter net drivers/net drivers/net/hw,$(TARGETS)),)
|
2024-04-04 19:45:22 -07:00
|
|
|
ifeq ($(filter net/lib,$(TARGETS)),)
|
|
|
|
|
INSTALL_DEP_TARGETS := net/lib
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
2024-10-08 17:35:18 +02:00
|
|
|
# User can optionally provide a TARGETS skiplist. By default we skip
|
|
|
|
|
# targets using BPF since it has cutting edge build time dependencies
|
|
|
|
|
# which require more effort to install.
|
|
|
|
|
SKIP_TARGETS ?= bpf sched_ext
|
2019-09-26 18:52:18 +01:00
|
|
|
ifneq ($(SKIP_TARGETS),)
|
|
|
|
|
TMP := $(filter-out $(SKIP_TARGETS), $(TARGETS))
|
|
|
|
|
override TARGETS := $(TMP)
|
|
|
|
|
endif
|
|
|
|
|
|
2020-02-06 09:40:00 +01:00
|
|
|
# User can set FORCE_TARGETS to 1 to require all targets to be successfully
|
|
|
|
|
# built; make will fail if any of the targets cannot be built. If
|
|
|
|
|
# FORCE_TARGETS is not set (the default), make will succeed if at least one
|
|
|
|
|
# of the targets gets built.
|
|
|
|
|
FORCE_TARGETS ?=
|
|
|
|
|
|
2020-07-28 00:32:41 -07:00
|
|
|
# Clear LDFLAGS and MAKEFLAGS when implicit rules are missing. This provides
|
|
|
|
|
# implicit rules to sub-test Makefiles which avoids build failures in test
|
|
|
|
|
# Makefile that don't have explicit build rules.
|
|
|
|
|
ifeq (,$(LINK.c))
|
2015-05-14 16:55:18 -03:00
|
|
|
override LDFLAGS =
|
2015-03-18 11:57:39 -06:00
|
|
|
override MAKEFLAGS =
|
|
|
|
|
endif
|
|
|
|
|
|
2020-02-26 15:54:49 -07:00
|
|
|
# Append kselftest to KBUILD_OUTPUT and O to avoid cluttering
|
2019-05-14 14:43:44 -06:00
|
|
|
# KBUILD_OUTPUT with selftest objects and headers installed
|
|
|
|
|
# by selftests Makefile or lib.mk.
|
2019-07-06 12:07:12 +09:00
|
|
|
ifdef building_out_of_srctree
|
2017-09-07 19:57:43 -06:00
|
|
|
override LDFLAGS =
|
|
|
|
|
endif
|
|
|
|
|
|
2022-01-19 15:15:22 +05:00
|
|
|
top_srcdir ?= ../../..
|
|
|
|
|
|
|
|
|
|
ifeq ("$(origin O)", "command line")
|
|
|
|
|
KBUILD_OUTPUT := $(O)
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifneq ($(KBUILD_OUTPUT),)
|
|
|
|
|
# Make's built-in functions such as $(abspath ...), $(realpath ...) cannot
|
|
|
|
|
# expand a shell special character '~'. We use a somewhat tedious way here.
|
|
|
|
|
abs_objtree := $(shell cd $(top_srcdir) && mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) && pwd)
|
|
|
|
|
$(if $(abs_objtree),, \
|
|
|
|
|
$(error failed to create output directory "$(KBUILD_OUTPUT)"))
|
|
|
|
|
# $(realpath ...) resolves symlinks
|
|
|
|
|
abs_objtree := $(realpath $(abs_objtree))
|
|
|
|
|
BUILD := $(abs_objtree)/kselftest
|
2024-05-16 20:51:07 -06:00
|
|
|
KHDR_INCLUDES := -isystem ${abs_objtree}/usr/include
|
2019-04-15 15:51:42 -06:00
|
|
|
else
|
2022-01-19 15:15:22 +05:00
|
|
|
BUILD := $(CURDIR)
|
2022-01-19 15:15:23 +05:00
|
|
|
abs_srctree := $(shell cd $(top_srcdir) && pwd)
|
2024-05-16 20:51:07 -06:00
|
|
|
KHDR_INCLUDES := -isystem ${abs_srctree}/usr/include
|
2022-01-19 15:15:22 +05:00
|
|
|
DEFAULT_INSTALL_HDR_PATH := 1
|
2016-11-29 19:55:52 +08:00
|
|
|
endif
|
|
|
|
|
|
2019-04-15 15:51:42 -06:00
|
|
|
# Prepare for headers install
|
|
|
|
|
include $(top_srcdir)/scripts/subarch.include
|
|
|
|
|
ARCH ?= $(SUBARCH)
|
2016-11-29 19:55:52 +08:00
|
|
|
export BUILD
|
2022-01-19 15:15:23 +05:00
|
|
|
export KHDR_INCLUDES
|
2019-04-15 15:51:42 -06:00
|
|
|
|
|
|
|
|
# set default goal to all, so make without a target runs all, even when
|
|
|
|
|
# all isn't the first target in the file.
|
|
|
|
|
.DEFAULT_GOAL := all
|
|
|
|
|
|
2023-12-08 18:01:44 -08:00
|
|
|
all:
|
2026-04-16 14:19:24 +01:00
|
|
|
@ret=1; \
|
2025-06-01 21:29:13 +07:00
|
|
|
for TARGET in $(TARGETS) $(INSTALL_DEP_TARGETS); do \
|
2019-12-10 11:44:59 +00:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
|
|
|
|
mkdir $$BUILD_TARGET -p; \
|
2020-02-06 09:40:00 +01:00
|
|
|
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET \
|
2022-02-17 03:38:17 +05:00
|
|
|
O=$(abs_objtree) \
|
2020-02-06 09:40:00 +01:00
|
|
|
$(if $(FORCE_TARGETS),|| exit); \
|
2026-04-16 14:19:24 +01:00
|
|
|
ret=$$((ret * $$?)); \
|
2019-12-10 11:44:59 +00:00
|
|
|
done; exit $$ret;
|
2012-01-12 17:20:44 -08:00
|
|
|
|
2012-03-28 14:42:54 -07:00
|
|
|
run_tests: all
|
2017-09-18 17:30:50 -06:00
|
|
|
@for TARGET in $(TARGETS); do \
|
2016-11-29 19:55:52 +08:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
2022-02-17 03:38:17 +05:00
|
|
|
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests \
|
2024-01-26 18:21:18 -05:00
|
|
|
SRC_PATH=$(shell readlink -e $$(pwd)) \
|
|
|
|
|
OBJ_PATH=$(BUILD) \
|
2022-02-17 03:38:17 +05:00
|
|
|
O=$(abs_objtree); \
|
2012-03-28 14:42:54 -07:00
|
|
|
done;
|
|
|
|
|
|
2014-07-02 09:51:38 -06:00
|
|
|
hotplug:
|
2017-09-18 17:30:50 -06:00
|
|
|
@for TARGET in $(TARGETS_HOTPLUG); do \
|
2016-11-29 19:55:52 +08:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
2019-08-16 18:06:04 +02:00
|
|
|
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET;\
|
2014-07-02 09:51:38 -06:00
|
|
|
done;
|
|
|
|
|
|
|
|
|
|
run_hotplug: hotplug
|
2017-09-18 17:30:50 -06:00
|
|
|
@for TARGET in $(TARGETS_HOTPLUG); do \
|
2016-11-29 19:55:52 +08:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
2019-08-16 18:06:04 +02:00
|
|
|
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
|
2014-07-02 09:51:38 -06:00
|
|
|
done;
|
|
|
|
|
|
|
|
|
|
clean_hotplug:
|
2017-09-18 17:30:50 -06:00
|
|
|
@for TARGET in $(TARGETS_HOTPLUG); do \
|
2016-11-29 19:55:52 +08:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
2019-08-16 18:06:04 +02:00
|
|
|
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
|
2014-07-02 09:51:38 -06:00
|
|
|
done;
|
|
|
|
|
|
2015-10-02 20:46:41 +09:00
|
|
|
run_pstore_crash:
|
2019-08-16 18:06:04 +02:00
|
|
|
$(MAKE) -C pstore run_crash
|
2015-10-02 20:46:41 +09:00
|
|
|
|
2019-05-07 17:44:21 -06:00
|
|
|
# Use $BUILD as the default install root. $BUILD points to the
|
|
|
|
|
# right output location for the following cases:
|
|
|
|
|
# 1. output_dir=kernel_src
|
|
|
|
|
# 2. a separate output directory is specified using O= KBUILD_OUTPUT
|
|
|
|
|
# 3. a separate output directory is specified using KBUILD_OUTPUT
|
2019-09-26 16:40:14 -06:00
|
|
|
# Avoid conflict with INSTALL_PATH set by the main Makefile
|
2019-05-07 17:44:21 -06:00
|
|
|
#
|
2019-09-26 16:40:14 -06:00
|
|
|
KSFT_INSTALL_PATH ?= $(BUILD)/kselftest_install
|
|
|
|
|
KSFT_INSTALL_PATH := $(abspath $(KSFT_INSTALL_PATH))
|
|
|
|
|
# Avoid changing the rest of the logic here and lib.mk.
|
|
|
|
|
INSTALL_PATH := $(KSFT_INSTALL_PATH)
|
2015-03-11 15:06:00 +11:00
|
|
|
ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
|
2020-09-28 13:26:48 -07:00
|
|
|
TEST_LIST := $(INSTALL_PATH)/kselftest-list.txt
|
2015-03-11 15:06:00 +11:00
|
|
|
|
2019-05-07 17:44:21 -06:00
|
|
|
install: all
|
2015-03-11 15:06:00 +11:00
|
|
|
ifdef INSTALL_PATH
|
|
|
|
|
@# Ask all targets to install their files
|
2019-04-24 16:12:31 -07:00
|
|
|
mkdir -p $(INSTALL_PATH)/kselftest
|
2019-10-30 12:45:36 -07:00
|
|
|
install -m 744 kselftest/module.sh $(INSTALL_PATH)/kselftest/
|
2019-04-24 16:12:31 -07:00
|
|
|
install -m 744 kselftest/runner.sh $(INSTALL_PATH)/kselftest/
|
2019-04-24 16:12:35 -07:00
|
|
|
install -m 744 kselftest/prefix.pl $(INSTALL_PATH)/kselftest/
|
2024-01-02 15:15:28 +01:00
|
|
|
install -m 744 kselftest/ktap_helpers.sh $(INSTALL_PATH)/kselftest/
|
2024-07-05 19:29:55 -04:00
|
|
|
install -m 744 kselftest/ksft.py $(INSTALL_PATH)/kselftest/
|
2020-09-28 13:26:48 -07:00
|
|
|
install -m 744 run_kselftest.sh $(INSTALL_PATH)/
|
|
|
|
|
rm -f $(TEST_LIST)
|
2026-04-16 14:19:24 +01:00
|
|
|
@ret=1; \
|
2024-04-04 19:45:22 -07:00
|
|
|
for TARGET in $(TARGETS) $(INSTALL_DEP_TARGETS); do \
|
2016-11-29 19:55:52 +08:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
2024-01-26 18:21:18 -05:00
|
|
|
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install \
|
|
|
|
|
INSTALL_PATH=$(INSTALL_PATH)/$$TARGET \
|
|
|
|
|
SRC_PATH=$(shell readlink -e $$(pwd)) \
|
|
|
|
|
OBJ_PATH=$(INSTALL_PATH) \
|
2022-02-17 03:38:17 +05:00
|
|
|
O=$(abs_objtree) \
|
2020-02-06 09:40:00 +01:00
|
|
|
$(if $(FORCE_TARGETS),|| exit); \
|
2026-04-16 14:19:24 +01:00
|
|
|
ret=$$((ret * $$?)); \
|
2019-12-10 11:44:59 +00:00
|
|
|
done; exit $$ret;
|
2015-03-11 15:06:00 +11:00
|
|
|
|
|
|
|
|
|
2020-09-28 13:26:48 -07:00
|
|
|
@# Ask all targets to emit their test scripts
|
|
|
|
|
@# While building kselftest-list.text skip also non-existent TARGET dirs:
|
2019-09-26 18:52:19 +01:00
|
|
|
@# they could be the result of a build failure and should NOT be
|
|
|
|
|
@# included in the generated runlist.
|
2015-03-11 15:06:00 +11:00
|
|
|
for TARGET in $(TARGETS); do \
|
2016-11-29 19:55:52 +08:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
2023-02-09 09:55:36 +01:00
|
|
|
[ ! -d $(INSTALL_PATH)/$$TARGET ] && printf "Skipping non-existent dir: $$TARGET\n" && continue; \
|
|
|
|
|
printf "Emit Tests for $$TARGET\n"; \
|
2020-09-28 13:26:48 -07:00
|
|
|
$(MAKE) -s --no-print-directory OUTPUT=$$BUILD_TARGET COLLECTION=$$TARGET \
|
|
|
|
|
-C $$TARGET emit_tests >> $(TEST_LIST); \
|
2015-03-11 15:06:00 +11:00
|
|
|
done;
|
2025-06-10 15:12:07 -07:00
|
|
|
@VERSION=$$(git describe HEAD 2>/dev/null); \
|
|
|
|
|
if [ -n "$$VERSION" ]; then \
|
|
|
|
|
echo "$$VERSION" > $(INSTALL_PATH)/VERSION; \
|
|
|
|
|
printf "Version saved to $(INSTALL_PATH)/VERSION\n"; \
|
|
|
|
|
else \
|
|
|
|
|
printf "Unable to get version from git describe\n"; \
|
|
|
|
|
fi
|
2025-07-03 17:17:46 -06:00
|
|
|
@echo "**Kselftest Installation is complete: $(INSTALL_PATH)**"
|
2015-03-11 15:06:00 +11:00
|
|
|
else
|
|
|
|
|
$(error Error: set INSTALL_PATH to use install)
|
|
|
|
|
endif
|
|
|
|
|
|
2020-05-19 22:00:45 +02:00
|
|
|
FORMAT ?= .gz
|
|
|
|
|
TAR_PATH = $(abspath ${INSTALL_PATH}/kselftest-packages/kselftest.tar${FORMAT})
|
|
|
|
|
gen_tar: install
|
|
|
|
|
@mkdir -p ${INSTALL_PATH}/kselftest-packages/
|
|
|
|
|
@tar caf ${TAR_PATH} --exclude=kselftest-packages -C ${INSTALL_PATH} .
|
|
|
|
|
@echo "Created ${TAR_PATH}"
|
|
|
|
|
|
2012-01-12 17:20:44 -08:00
|
|
|
clean:
|
2025-09-10 19:30:32 +08:00
|
|
|
@for TARGET in $(TARGETS) $(INSTALL_DEP_TARGETS); do \
|
2016-11-29 19:55:52 +08:00
|
|
|
BUILD_TARGET=$$BUILD/$$TARGET; \
|
2019-08-16 18:06:04 +02:00
|
|
|
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
|
2012-01-12 17:20:44 -08:00
|
|
|
done;
|
2015-03-11 15:06:00 +11:00
|
|
|
|
2022-07-08 17:23:27 +01:00
|
|
|
.PHONY: all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean gen_tar
|