summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/esp32/Makefile2
-rw-r--r--ports/rp2/Makefile2
-rw-r--r--py/mkrules.mk7
3 files changed, 9 insertions, 2 deletions
diff --git a/ports/esp32/Makefile b/ports/esp32/Makefile
index 1c2fa82ce..1ce4d9720 100644
--- a/ports/esp32/Makefile
+++ b/ports/esp32/Makefile
@@ -114,4 +114,4 @@ size-files:
submodules:
@GIT_SUBMODULES=$$(IDF_COMPONENT_MANAGER=0 idf.py $(IDFPY_FLAGS) -B $(BUILD)/submodules -D ECHO_SUBMODULES=1 build 2>&1 | \
grep '^GIT_SUBMODULES=' | cut -d= -f2); \
- $(MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="$${GIT_SUBMODULES}" submodules
+ $(MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="$${GIT_SUBMODULES}" GIT_SUBMODULES_FAIL_IF_EMPTY=1 submodules
diff --git a/ports/rp2/Makefile b/ports/rp2/Makefile
index afa21cc7a..200899d33 100644
--- a/ports/rp2/Makefile
+++ b/ports/rp2/Makefile
@@ -76,4 +76,4 @@ submodules:
$(MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="lib/pico-sdk" submodules
@GIT_SUBMODULES=$$(cmake -B $(BUILD)/submodules -DECHO_SUBMODULES=1 ${CMAKE_ARGS} -S . 2>&1 | \
grep '^GIT_SUBMODULES=' | cut -d= -f2); \
- $(MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="$${GIT_SUBMODULES}" submodules
+ $(MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="$${GIT_SUBMODULES}" GIT_SUBMODULES_FAIL_IF_EMPTY=1 submodules
diff --git a/py/mkrules.mk b/py/mkrules.mk
index 74978b0d1..373bda899 100644
--- a/py/mkrules.mk
+++ b/py/mkrules.mk
@@ -257,6 +257,13 @@ ifneq ($(GIT_SUBMODULES),)
$(Q)cd $(TOP) && git submodule sync $(GIT_SUBMODULES)
$(Q)cd $(TOP) && git submodule update --init --filter=blob:none $(GIT_SUBMODULES) || \
git submodule update --init $(GIT_SUBMODULES)
+else
+ifeq ($(GIT_SUBMODULES_FAIL_IF_EMPTY),1)
+ # If you see this error, it may mean the internal step run by the port's build
+ # system to find git submodules has failed. Double-check dependencies are set correctly.
+ $(ECHO) "Internal build error: The submodule list should not be empty."
+ exit 1
+endif
endif
.PHONY: submodules