With V=0, build process would print “including .../Makefile.projbuild" lines, causing problems for print_flash_cmd target.
The issue was due to the way macro expansion works in make. To delay evaluation of info function until the execution of expanded block, two dollar signs are required.
Test for print_flash_cmd target added.
# Include any Makefile.projbuild file letting components add
# configuration at the project level
define includeProjBuildMakefile
-$(if $(V),$(info including $(1)/Makefile.projbuild...))
+$(if $(V),$$(info including $(1)/Makefile.projbuild...))
COMPONENT_PATH := $(1)
include $(1)/Makefile.projbuild
endef
assert_rebuilt nvs_flash/src/nvs_api.o
assert_rebuilt freertos/xtensa_vectors.o
+ print_status "print_flash_cmd target should produce one line of output"
+ make
+ test $(make print_flash_cmd V=0 | wc -l | tr -d ' ') -eq 1
+
print_status "Can include/exclude object files"
echo "#error This file should not compile" > main/excluded_file.c
echo "int required_global;" > main/included_file.c