summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2017-08-20 02:04:11 -0400
committerMasahiro Yamada <yamada.masahiro@socionext.com>2017-08-31 19:50:32 -0400
commit8e9b466799230bc20a029579e92d4cd526e5a2e1 (patch)
tree3b51d498c991f1e22bf482c0e59e0c2d203faac4 /Makefile
parentaae4e7a8bc44722fe70d58920a36916b1043195e (diff)
kbuild: use $(abspath ...) instead of $(shell cd ... && /bin/pwd)
Kbuild conventionally uses $(shell cd ... && /bin/pwd) idiom to get the absolute path of the directory because GNU Make 3.80, the minimal supported version at that time, did not support $(abspath ...) or $(realpath ...). Commit 37d69ee30808 ("docs: bump minimal GNU Make version to 3.81") dropped the GNU Make 3.80 support, so we are now allowed to use those make-builtin helpers. This conversion will provide better portability without relying on the pwd command or its location /bin/pwd. I am intentionally using $(realpath ...) instead $(abspath ...) in some places. The difference between the two is $(realpath ...) returns an empty string if the given path does not exist. It is convenient in places where we need to error-out if the makefile fails to create an output directory. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile12
1 files changed, 6 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 6eba23bcb5ad..eca6cffa3cd7 100644
--- a/Makefile
+++ b/Makefile
@@ -130,8 +130,8 @@ endif
130ifneq ($(KBUILD_OUTPUT),) 130ifneq ($(KBUILD_OUTPUT),)
131# check that the output directory actually exists 131# check that the output directory actually exists
132saved-output := $(KBUILD_OUTPUT) 132saved-output := $(KBUILD_OUTPUT)
133KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \ 133$(shell [ -d $(KBUILD_OUTPUT) ] || mkdir -p $(KBUILD_OUTPUT))
134 && /bin/pwd) 134KBUILD_OUTPUT := $(realpath $(KBUILD_OUTPUT))
135$(if $(KBUILD_OUTPUT),, \ 135$(if $(KBUILD_OUTPUT),, \
136 $(error failed to create output directory "$(saved-output)")) 136 $(error failed to create output directory "$(saved-output)"))
137 137
@@ -978,7 +978,7 @@ ifdef CONFIG_HEADERS_CHECK
978 $(Q)$(MAKE) -f $(srctree)/Makefile headers_check 978 $(Q)$(MAKE) -f $(srctree)/Makefile headers_check
979endif 979endif
980ifdef CONFIG_GDB_SCRIPTS 980ifdef CONFIG_GDB_SCRIPTS
981 $(Q)ln -fsn `cd $(srctree) && /bin/pwd`/scripts/gdb/vmlinux-gdb.py 981 $(Q)ln -fsn $(abspath $(srctree)/scripts/gdb/vmlinux-gdb.py)
982endif 982endif
983ifdef CONFIG_TRIM_UNUSED_KSYMS 983ifdef CONFIG_TRIM_UNUSED_KSYMS
984 $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ 984 $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
@@ -1237,7 +1237,7 @@ _modinst_:
1237 @rm -rf $(MODLIB)/kernel 1237 @rm -rf $(MODLIB)/kernel
1238 @rm -f $(MODLIB)/source 1238 @rm -f $(MODLIB)/source
1239 @mkdir -p $(MODLIB)/kernel 1239 @mkdir -p $(MODLIB)/kernel
1240 @ln -s `cd $(srctree) && /bin/pwd` $(MODLIB)/source 1240 @ln -s $(abspath $(srctree)) $(MODLIB)/source
1241 @if [ ! $(objtree) -ef $(MODLIB)/build ]; then \ 1241 @if [ ! $(objtree) -ef $(MODLIB)/build ]; then \
1242 rm -f $(MODLIB)/build ; \ 1242 rm -f $(MODLIB)/build ; \
1243 ln -s $(CURDIR) $(MODLIB)/build ; \ 1243 ln -s $(CURDIR) $(MODLIB)/build ; \
@@ -1629,11 +1629,11 @@ image_name:
1629# Clear a bunch of variables before executing the submake 1629# Clear a bunch of variables before executing the submake
1630tools/: FORCE 1630tools/: FORCE
1631 $(Q)mkdir -p $(objtree)/tools 1631 $(Q)mkdir -p $(objtree)/tools
1632 $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/ 1632 $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(src)/tools/
1633 1633
1634tools/%: FORCE 1634tools/%: FORCE
1635 $(Q)mkdir -p $(objtree)/tools 1635 $(Q)mkdir -p $(objtree)/tools
1636 $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/ $* 1636 $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(src)/tools/ $*
1637 1637
1638# Single targets 1638# Single targets
1639# --------------------------------------------------------------------------- 1639# ---------------------------------------------------------------------------