[PATCH] kbuild: create a build directory automatically for out-of-tree build

Masahiro Yamada yamada.m at jp.panasonic.com
Tue Dec 23 20:35:55 PST 2014

Kbuild supports saving output files in a separate directory.
But the build directory must be created beforehand. For example,

  $ mkdir -p dir/to/store/output/files
  $ make O=dir/to/store/output/files defconfig

Creating a build directory automatically would be useful.

[ imported from Linux Kernel, commit 1c9e70a55b08 ]
Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
Acked-by: Sam Ravnborg <sam at ravnborg.org>
Signed-off-by: Michal Marek <mmarek at suse.cz>

 Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 5676b29..92889b3 100644
--- a/Makefile
+++ b/Makefile
@@ -112,9 +112,10 @@ ifneq ($(KBUILD_OUTPUT),)
 # Invoke a second make in the output directory, passing relevant variables
 # check that the output directory actually exists
 saved-output := $(KBUILD_OUTPUT)
-KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
+KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
+								&& /bin/pwd)
 $(if $(KBUILD_OUTPUT),, \
-     $(error output directory "$(saved-output)" does not exist))
+     $(error failed to create output directory "$(saved-output)"))

More information about the barebox mailing list