[PATCH 01/11] Makefile: kselftest and kselftest-clean fail for make O=dir case

From: Shuah Khan
Date: Tue Sep 12 2017 - 19:53:29 EST


kselftest and kselftest-clean targets fail when object directory is
specified to relocate objects. Fix it so it can find the source tree
to build from.

make O=/tmp/kselftest_top kselftest

make[1]: Entering directory '/tmp/kselftest_top'
make[2]: Entering directory '/tmp/kselftest_top'
make[2]: *** tools/testing/selftests: No such file or directory. Stop.
make[2]: Leaving directory '/tmp/kselftest_top'
./linux-kselftest/Makefile:1185: recipe for target
'kselftest' failed
make[1]: *** [kselftest] Error 2
make[1]: Leaving directory '/tmp/kselftest_top'
Makefile:145: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2

Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
---
Makefile | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index eccb8d704c23..6a85322d0b3e 100644
--- a/Makefile
+++ b/Makefile
@@ -1180,13 +1180,18 @@ headers_check: headers_install
# ---------------------------------------------------------------------------
# Kernel selftest

+PHONY += __kselftest
+ kselftest_src := tools/testing/selftests
+ ifneq ($(KBUILD_SRC),)
+ kselftest_src := $(KBUILD_SRC)/tools/testing/selftests
+ endif
PHONY += kselftest
-kselftest:
- $(Q)$(MAKE) -C tools/testing/selftests run_tests
+kselftest: __kselftest
+ $(Q)$(MAKE) -C $(kselftest_src) run_tests

PHONY += kselftest-clean
-kselftest-clean:
- $(Q)$(MAKE) -C tools/testing/selftests clean
+kselftest-clean: __kselftest
+ $(Q)$(MAKE) -C $(kselftest_src) clean

PHONY += kselftest-merge
kselftest-merge:
--
2.11.0