When OUTPUT specified, it may encounter no directory error if there is subdir in $TARGET for any of TEST_GEN_PROGS, TEST_GEN_PROGS_EXTENDED, or TEST_GEN_FILES. This issue is found by running make OUTPUT=/path/to/output in tools/testing/selftests/kvm Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> --- tools/testing/selftests/lib.mk | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk index 1c8a1963d03f..78fb00bdf5c4 100644 --- a/tools/testing/selftests/lib.mk +++ b/tools/testing/selftests/lib.mk @@ -20,6 +20,16 @@ TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS)) TEST_GEN_PROGS_EXTENDED := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS_EXTENDED)) TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES)) +ifneq ($(TEST_GEN_PROGS),) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS)))) +endif +ifneq ($(TEST_GEN_PROGS_EXTENDED),) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS_EXTENDED)))) +endif +ifneq ($(TEST_GEN_FILES),) +$(shell mkdir -p $(sort $(dir $(TEST_GEN_FILES)))) +endif + ifdef KSFT_KHDR_INSTALL top_srcdir ?= ../../../.. include $(top_srcdir)/scripts/subarch.include -- 2.20.1