From 5f5e5f2919c631ead7aee4e3546e9680d3e63ace Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Fri, 21 Feb 2014 23:17:52 +0100 Subject: [PATCH] Makefile: internally use absolute paths to BR2_EXTERNAL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using a relative path for BR2_EXTERNAL, and using an external defconfig, such as in (from a Buildroot top-dir): make O=.. BR2_EXTERNAL=.. foo_defconfig is broken. It is unclear why the %_defconfig rule recurses in that case. This patch internaly makes BR2_EXTERNAL canonical (ie. makes it an absolute path), and checks the directory exists. [Peter: s/relatively/relative/ as suggested by Thomas] Reported-by: Jérémy Rosen Signed-off-by: "Yann E. MORIN" Cc: Peter Korsgaard Cc: Romain Naour Cc: Arnout Vandecappelle Signed-off-by: Peter Korsgaard --- Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Makefile b/Makefile index 98d32c046c..502991f658 100644 --- a/Makefile +++ b/Makefile @@ -119,6 +119,11 @@ ifeq ($(BR2_EXTERNAL),) override BR2_EXTERNAL = support/dummy-external $(shell rm -f $(BR2_EXTERNAL_FILE)) else + _BR2_EXTERNAL = $(shell cd $(BR2_EXTERNAL) >/dev/null 2>&1 && pwd) + ifeq ($(_BR2_EXTERNAL),) + $(error BR2_EXTERNAL='$(BR2_EXTERNAL)' does not exist, relative to $(TOPDIR)) + endif + override BR2_EXTERNAL := $(_BR2_EXTERNAL) $(shell echo BR2_EXTERNAL ?= $(BR2_EXTERNAL) > $(BR2_EXTERNAL_FILE)) endif