From f7a501e13ccf76814743ea7a5b46606762505c34 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Sun, 13 Dec 2009 22:58:49 +0100 Subject: Makefile: fix build if CDPATH is set in environment Reported by Bjørn Forsman . If CDPATH is set in the environment, cd will print the absolute path of , causing various trouble (The most critical being BASE_DIR ending up as 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 --- Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index bf04773d2..5b71051c1 100644 --- a/Makefile +++ b/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 ' 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)) -- cgit v1.2.3-55-g7522