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 | # --------------------------------------------------------------------------- |
