diff --git a/make/component_wrapper.mk b/make/component_wrapper.mk index 751668d4b..d05777e30 100644 --- a/make/component_wrapper.mk +++ b/make/component_wrapper.mk @@ -147,7 +147,11 @@ endef # component-specific feature, please don't! What you want is a # Makefile.projbuild for your component (see docs/build-system.rst for # more.) -component_project_vars.mk: +# +# Note: The :: target here is not a mistake. This target should always be +# executed, as dependencies are checked by the parent project-level make target. +# See https://www.gnu.org/software/make/manual/make.html#index-_003a_003a-rules-_0028double_002dcolon_0029 +component_project_vars.mk:: $(details) "Building component project variables list $(abspath $@)" @echo '# Automatically generated build file. Do not edit.' > $@ @echo 'COMPONENT_INCLUDES += $(call MakeVariablePath,$(addprefix $(COMPONENT_PATH)/,$(COMPONENT_ADD_INCLUDEDIRS)))' >> $@ diff --git a/tools/ci/test_build_system.sh b/tools/ci/test_build_system.sh index e7a3c7316..d2e75ddf9 100755 --- a/tools/ci/test_build_system.sh +++ b/tools/ci/test_build_system.sh @@ -134,13 +134,13 @@ function run_tests() print_status "Can still clean build if all text files are CRLFs" make clean || failure "Unexpected failure to make clean" - find . -exec unix2dos {} \; # CRLFify template dir + find . -path .git -prune -exec unix2dos {} \; # CRLFify template dir # make a copy of esp-idf and CRLFify it CRLF_ESPIDF=${TESTDIR}/esp-idf-crlf mkdir -p ${CRLF_ESPIDF} cp -r ${IDF_PATH}/* ${CRLF_ESPIDF} # don't CRLFify executable files, as Linux will fail to execute them - find ${CRLF_ESPIDF} -type f ! -perm 755 -exec unix2dos {} \; + find ${CRLF_ESPIDF} -name .git -prune -name build -prune -type f ! -perm 755 -exec unix2dos {} \; make IDF_PATH=${CRLF_ESPIDF} || failure "Failed to build with CRLFs in source" # do the same checks we do for the clean build assert_built ${APP_BINS} ${BOOTLOADER_BINS} partitions_singleapp.bin @@ -165,6 +165,8 @@ function run_tests() take_build_snapshot touch sdkconfig make + # check the component_project_vars.mk file was rebuilt + assert_rebuilt esp32/component_project_vars.mk # pick one each of .c, .cpp, .S that #includes sdkconfig.h # and therefore should rebuild assert_rebuilt newlib/syscall_table.o