]> granicus.if.org Git - esp-idf/commitdiff
build system: Fix Windows case when IDF_PATH contains colons (ie C:/)
authorAngus Gratton <angus@espressif.com>
Wed, 21 Dec 2016 23:31:20 +0000 (10:31 +1100)
committerAngus Gratton <angus@espressif.com>
Wed, 21 Dec 2016 23:36:25 +0000 (10:36 +1100)
Closes github #166 https://github.com/espressif/esp-idf/issues/166

make/project.mk

index 948bfda1f78edfe36877070c61592361a41525db..1625bdca90c413999654ec35bbcc96db7032bb14 100644 (file)
@@ -44,15 +44,16 @@ $(warning "esp-idf build system only supports GNU Make versions 3.81 or newer. Y
 endif
 endif
 
-# make IDF_PATH an absolute path
-# (works around the case where a shell character is embedded in the environment variable value.)
-export IDF_PATH:=$(wildcard $(IDF_PATH))
+# make IDF_PATH a "real" absolute path
+# * works around the case where a shell character is embedded in the environment variable value.
+# * changes Windows-style C:/blah/ paths to MSYS/Cygwin style /c/blah
+export IDF_PATH:=$(realpath $(wildcard $(IDF_PATH)))
 
 ifndef IDF_PATH
 $(error IDF_PATH variable is not set to a valid directory.)
 endif
 
-ifneq ("$(IDF_PATH)","$(wildcard $(IDF_PATH))")
+ifneq ("$(IDF_PATH)","$(realpath $(wildcard $(IDF_PATH)))")
 # due to the way make manages variables, this is hard to account for
 #
 # if you see this error, do the shell expansion in the shell ie
@@ -60,6 +61,10 @@ ifneq ("$(IDF_PATH)","$(wildcard $(IDF_PATH))")
 $(error If IDF_PATH is overriden on command line, it must be an absolute path with no embedded shell special characters)
 endif
 
+ifneq ("$(IDF_PATH)","$(subst :,,$(IDF_PATH))")
+$(error IDF_PATH cannot contain colons. If overriding IDF_PATH on Windows, use Cygwin-style /c/dir instead of C:/dir)
+endif
+
 # disable built-in make rules, makes debugging saner
 MAKEFLAGS_OLD := $(MAKEFLAGS)
 MAKEFLAGS +=-rR