diff --git a/Makefile b/Makefile index 41730ce25d..6c3f596546 100644 --- a/Makefile +++ b/Makefile @@ -56,9 +56,12 @@ endif # directory build/px4_fmu-v2_default and then call make # in that directory with the target upload. -# explicity set default build target +# explicity set default build target all: px4_sitl_default +# define a space character to be able to explicitly find it in strings +space := $(subst ,, ) + # Parsing # -------------------------------------------------------------------- # assume 1st argument passed is the main target, the @@ -165,8 +168,8 @@ define cmake-cache-check @$(eval CACHED_CMAKE_OPTIONS = $(shell cd $(BUILD_DIR) 2>/dev/null && cmake -L 2>/dev/null | sed -n 's/\([^[:blank:]]*\):[^[:blank:]]*\(=[^[:blank:]]*\)/\1\2/gp' )) @# transform the options in CMAKE_ARGS into the OPTION=VALUE format without -D @$(eval DESIRED_CMAKE_OPTIONS = $(shell echo $(CMAKE_ARGS) | sed -n 's/-D\([^[:blank:]]*=[^[:blank:]]*\)/\1/gp' )) - @# find each currently desired option in the already cached ones - @$(eval VERIFIED_CMAKE_OPTIONS = $(foreach option,$(DESIRED_CMAKE_OPTIONS),$(findstring $(option),$(CACHED_CMAKE_OPTIONS)))) + @# find each currently desired option in the already cached ones making sure the complete configured string value is the same + @$(eval VERIFIED_CMAKE_OPTIONS = $(foreach option,$(DESIRED_CMAKE_OPTIONS),$(strip $(findstring $(option)$(space),$(CACHED_CMAKE_OPTIONS))))) @# if the complete list of desired options is found in the list of verified options we don't need to reconfigure and CMAKE_CACHE_CHECK stays empty @$(eval CMAKE_CACHE_CHECK = $(if $(findstring $(DESIRED_CMAKE_OPTIONS),$(VERIFIED_CMAKE_OPTIONS)),,y)) endef @@ -474,7 +477,6 @@ distclean: gazeboclean $(error "$@ cannot be the first argument. Use '$(MAKE) help|list_config_targets' to get a list of all possible [configuration] targets."),@#) # Print a list of non-config targets (based on http://stackoverflow.com/a/26339924/1487069) -space := $(subst ,, ) help: @echo "Usage: $(MAKE) " @echo "Where is one of:"