Skip to content

Commit 5b0c1dc

Browse files
committed
Makefile: Try fix cnn module builds
1 parent 530f5f7 commit 5b0c1dc

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Makefile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ $(foreach mod,$(MODULES),\
6969
$(wildcard $($(mod)_SRC)/*.py) \
7070
$($(mod)_SRC)/Makefile))
7171

72+
# CNN modules share the same build directory, so they must build sequentially
73+
# Ensure int8 builds after fp32 to avoid race conditions
74+
$(MODULES_PATH)/emlearn_cnn_int8.mpy: $(MODULES_PATH)/emlearn_cnn_fp32.mpy
75+
7276
# Generate list of .mpy files
7377
MODULE_MPYS = $(addprefix $(MODULES_PATH)/,$(addsuffix .mpy,$(MODULES)))
7478

@@ -78,6 +82,24 @@ $(MODULES_PATH)/%.mpy:
7882
ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=$(CFLAGS_EXTRA) \
7983
V=1 $($(*)_CONFIG) dist
8084

85+
# CNN modules need clean build due to shared build directory
86+
# They must also build sequentially (fp32 first, then int8)
87+
$(MODULES_PATH)/emlearn_cnn_fp32.mpy:
88+
$(MAKE) -C src/tinymaix_cnn \
89+
ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=$(CFLAGS_EXTRA) \
90+
V=1 CONFIG=fp32 clean
91+
$(MAKE) -C src/tinymaix_cnn \
92+
ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=$(CFLAGS_EXTRA) \
93+
V=1 CONFIG=fp32 dist
94+
95+
$(MODULES_PATH)/emlearn_cnn_int8.mpy: $(MODULES_PATH)/emlearn_cnn_fp32.mpy
96+
$(MAKE) -C src/tinymaix_cnn \
97+
ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=$(CFLAGS_EXTRA) \
98+
V=1 CONFIG=int8 clean
99+
$(MAKE) -C src/tinymaix_cnn \
100+
ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=$(CFLAGS_EXTRA) \
101+
V=1 CONFIG=int8 dist
102+
81103
# Collect test files for dependency tracking
82104
TEST_PY := $(wildcard tests/test_*.py)
83105

0 commit comments

Comments
 (0)