diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-08-20 02:04:11 -0400 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-08-31 19:50:32 -0400 |
commit | 8e9b466799230bc20a029579e92d4cd526e5a2e1 (patch) | |
tree | 3b51d498c991f1e22bf482c0e59e0c2d203faac4 /Makefile | |
parent | aae4e7a8bc44722fe70d58920a36916b1043195e (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-- | Makefile | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -130,8 +130,8 @@ endif | |||
130 | ifneq ($(KBUILD_OUTPUT),) | 130 | ifneq ($(KBUILD_OUTPUT),) |
131 | # check that the output directory actually exists | 131 | # check that the output directory actually exists |
132 | saved-output := $(KBUILD_OUTPUT) | 132 | saved-output := $(KBUILD_OUTPUT) |
133 | KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \ | 133 | $(shell [ -d $(KBUILD_OUTPUT) ] || mkdir -p $(KBUILD_OUTPUT)) |
134 | && /bin/pwd) | 134 | KBUILD_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 |
979 | endif | 979 | endif |
980 | ifdef CONFIG_GDB_SCRIPTS | 980 | ifdef 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) |
982 | endif | 982 | endif |
983 | ifdef CONFIG_TRIM_UNUSED_KSYMS | 983 | ifdef 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 |
1630 | tools/: FORCE | 1630 | tools/: 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 | ||
1634 | tools/%: FORCE | 1634 | tools/%: 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 | # --------------------------------------------------------------------------- |