mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-05 05:34:32 +02:00
build system: Account for Windows behaviour of make wildcard for some dirs
See github #166
This commit is contained in:
@@ -49,14 +49,23 @@ endif
|
|||||||
# make IDF_PATH a "real" absolute path
|
# make IDF_PATH a "real" absolute path
|
||||||
# * works around the case where a shell character is embedded in the environment variable value.
|
# * 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
|
# * changes Windows-style C:/blah/ paths to MSYS/Cygwin style /c/blah
|
||||||
export IDF_PATH:=$(realpath $(wildcard $(IDF_PATH)))
|
ifeq ("$(OS)","Windows_NT")
|
||||||
|
# On Windows MSYS2, make wildcard function returns empty string for paths of form /xyz
|
||||||
|
# where /xyz is a directory inside the MSYS root - so we don't use it.
|
||||||
|
SANITISED_IDF_PATH:=$(realpath $(IDF_PATH))
|
||||||
|
else
|
||||||
|
SANITISED_IDF_PATH:=$(realpath $(wildcard $(IDF_PATH)))
|
||||||
|
endif
|
||||||
|
|
||||||
|
export IDF_PATH := $(SANITISED_IDF_PATH)
|
||||||
|
|
||||||
ifndef IDF_PATH
|
ifndef IDF_PATH
|
||||||
$(error IDF_PATH variable is not set to a valid directory.)
|
$(error IDF_PATH variable is not set to a valid directory.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ("$(IDF_PATH)","$(realpath $(wildcard $(IDF_PATH)))")
|
ifneq ("$(IDF_PATH)","$(SANITISED_IDF_PATH)")
|
||||||
# due to the way make manages variables, this is hard to account for
|
# implies IDF_PATH was overriden on make command line.
|
||||||
|
# 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
|
# if you see this error, do the shell expansion in the shell ie
|
||||||
# make IDF_PATH=~/blah not make IDF_PATH="~/blah"
|
# make IDF_PATH=~/blah not make IDF_PATH="~/blah"
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
# Eclipse's output parser expects to see output of the form C:/dir/dir/file but our Make
|
# Eclipse's output parser expects to see output of the form C:/dir/dir/file but our Make
|
||||||
# process uses MinGW paths of the form /c/dir/dir/file. So parse these out...
|
# process uses MinGW paths of the form /c/dir/dir/file. So parse these out...
|
||||||
#
|
#
|
||||||
# (regexp deliberate only matches after a space character to try and avoid false-positives.)
|
# A little hacky as it looks for any single character of form /X/something.
|
||||||
|
#
|
||||||
echo "Running make in $(pwd)"
|
echo "Running make in $(pwd)"
|
||||||
make $@ V=1 | sed -E "s@ /([a-z])/(.+)/@ \1:/\2/@g" | sed -E "s@-I/([a-z])/(.+)/@-I\1:/\2/@g" | sed -E "s@-L/([a-z])/(.+)/@-L\1:/\2/@g"
|
make $@ V=1 | sed -E "s@/([a-z])/([^/+])@\1:/\2@g"
|
||||||
|
Reference in New Issue
Block a user