[U-Boot] [PATCH 4/5] kbuild: Use relative path when possible

Masahiro Yamada
2014-06-16T09:56:39Z

Import 3 useful commits by Michal Marek <mmarek@suse.cz>
from Linux 3.16-rc1.

commit 9da0763bdd82572be243fcf5161734f11568960f
kbuild: Use relative path when building in a subdir of the source tree

commit 890676c65d699db3ad82e7dddd0cf8fb449031af
kbuild: Use relative path when building in the source tree

commit 7e1c04779efd51154baf652e653ceb24ce68939b
kbuild: Use relative path for $(objtree)

mkconfig and tools/Makefile must be adjusted to use relative path
for srctree.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
---

Makefile | 14 ++++++++++++--
mkconfig | 4 ++--
tools/Makefile | 2 +-
3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 2116e9a..21c8bd9 100644
--- a/Makefile
+++ b/Makefile
@@ -153,8 +153,18 @@ else
_all: modules
endif

-srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
-objtree := $(CURDIR)
+ifeq ($(KBUILD_SRC),)
+ # building in the source tree
+ srctree := .
+else
+ ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
+ # building in a subdirectory of the source tree
+ srctree := ..
+ else
+ srctree := $(KBUILD_SRC)
+ endif
+endif
+objtree := .
src := $(srctree)
obj := $(objtree)

diff --git a/mkconfig b/mkconfig
index 2bf5897..7592d15 100755
--- a/mkconfig
+++ b/mkconfig
@@ -105,7 +105,7 @@ fi
#
if [ -n "$KBUILD_SRC" ] ; then
mkdir -p ${objtree}/include
- LNPREFIX=${srctree}/arch/${arch}/include/asm/
+ LNPREFIX=$(cd $srctree; pwd)/arch/${arch}/include/asm/
cd ${objtree}/include
mkdir -p asm
else
@@ -121,7 +121,7 @@ else
fi

if [ -z "$KBUILD_SRC" ] ; then
- cd ${srctree}/include
+ cd ../../../include
fi

#
diff --git a/tools/Makefile b/tools/Makefile
index 0088c1a..c80f54f 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -153,7 +153,7 @@ HOSTCFLAGS_sha256.o := -pedantic
#HOSTCFLAGS_mpc86x_clk.o := -pedantic

quiet_cmd_wrap = WRAP $@
-cmd_wrap = echo "\#include <$(srctree)/$(patsubst $(obj)/%,%,$@)>" >$@
+cmd_wrap = echo "\#include <../$(patsubst $(obj)/%,%,$@)>" >$@

$(obj)/lib/%.c $(obj)/common/%.c:
$(call cmd,wrap)
--
1.9.1