diff options
Diffstat (limited to 'linux/linux-tool-selftests.mk')
-rw-r--r-- | linux/linux-tool-selftests.mk | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/linux/linux-tool-selftests.mk b/linux/linux-tool-selftests.mk new file mode 100644 index 0000000000..3cbfed2d81 --- /dev/null +++ b/linux/linux-tool-selftests.mk @@ -0,0 +1,46 @@ +################################################################################ +# +# selftests +# +################################################################################ + +LINUX_TOOLS += selftests + +ifeq ($(KERNEL_ARCH),x86_64) +SELFTESTS_ARCH=x86 +else +ifeq ($(KERNEL_ARCH),i386) +SELFTESTS_ARCH=x86 +else +SELFTESTS_ARCH=$(KERNEL_ARCH) +endif +endif + +SELFTESTS_DEPENDENCIES = libcap-ng popt + +SELFTESTS_MAKE_FLAGS = \ + $(LINUX_MAKE_FLAGS) \ + ARCH=$(SELFTESTS_ARCH) + +# O must be redefined here to overwrite the one used by Buildroot for +# out of tree build. We build the selftests in $(@D)/tools/selftests and +# not just $(@D) so that it isn't built in the root directory of the kernel +# sources. +# +# The headers_install step here is important as some kernel selftests use a +# hardcoded CFLAGS to find kernel headers e.g: +# CFLAGS += -I../../../../usr/include/ +# The headers_install target will install the kernel headers locally inside +# the Linux build dir +define SELFTESTS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) $(SELFTESTS_MAKE_FLAGS) \ + headers_install + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)/tools/testing/selftests \ + $(SELFTESTS_MAKE_FLAGS) O=$(@D)/tools/testing/selftests +endef + +define SELFTESTS_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)/tools/testing/selftests \ + $(SELFTESTS_MAKE_FLAGS) O=$(@D)/tools/testing/selftests \ + INSTALL_PATH=$(TARGET_DIR)/usr/lib/kselftests install +endef |