Makefile: fix build if CDPATH is set in environment
Reported by Bjørn Forsman <bjorn.forsman@gmail.com>. If CDPATH is set in the environment, cd <dir> will print the absolute path of <dir>, causing various trouble (The most critical being BASE_DIR ending up as <path> <path> which breaks basically everything). Fix it by clearing CDPATH. Notice that export doesn't affect the environment of $(shell ..) calls, so explicitly throw away any output from cd in the BASE_DIR shell call. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
617aa4995a
commit
f7a501e13c
7
Makefile
7
Makefile
@ -232,7 +232,12 @@ else
|
||||
MAKEOVERRIDES =
|
||||
endif
|
||||
|
||||
BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd)
|
||||
# bash prints the name of the directory on 'cd <dir>' if CDPATH is
|
||||
# set, so unset it here to not cause problems. Notice that the export
|
||||
# line doesn't affect the environment of $(shell ..) calls, so
|
||||
# explictly throw away any output from 'cd' here.
|
||||
export CDPATH:=
|
||||
BASE_DIR := $(shell mkdir -p $(O) && cd $(O) >/dev/null && pwd)
|
||||
$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
|
||||
|
||||
DL_DIR=$(call qstrip,$(BR2_DL_DIR))
|
||||
|
Loading…
Reference in New Issue
Block a user