I attempted to build KVM selftests on a specified dir, unfortunately neither "make O=/path/to/mydir TARGETS=kvm" in tools/testing/selftests, nor "make OUTPUT=/path/to/mydir" in tools/testing/selftests/kvm work. This series aims to fix them. Patch 1 fixes the issue that output directory is not exist. Patch 2 and 3 are the preparation for kvm to get the right path of installed linux headers. Patch 4 and 6 prepare the INSTALL_HDR_PATH to tell sub TARGET where the linux headers are installed. Patch 5 fixes the issue that with OUTPUT specified, it still make the linux tree dirty. I only test the sub TARGET of kvm. In theory, it won't break other TARGET of selftests. Changes in v2: - fix the no directory issue in lib.mk - make kvm fixes seperate patch - Add the patch to fix linux src tree not clean issue v1: https://lore.kernel.org/kvm/20200315093425.33600-1-xiaoyao.li@xxxxxxxxx/ Xiaoyao Li (6): selftests: Create directory when OUTPUT specified selftests: kvm: Include lib.mk earlier selftests: kvm: Use the default linux header path only when INSTALL_HDR_PATH not defined selftests: Create variable INSTALL_HDR_PATH if need to install linux headers to $(OUTPUT)/usr selftests: Generate build output of linux headers to $(OUTPUT)/linux-header-build selftests: export INSTALL_HDR_PATH if using "O" to specify output dir tools/testing/selftests/Makefile | 6 +++++- tools/testing/selftests/kvm/Makefile | 9 +++++---- tools/testing/selftests/lib.mk | 19 ++++++++++++++++++- 3 files changed, 28 insertions(+), 6 deletions(-) -- 2.20.1