Skip to content

Commit f5d9619

Browse files
committed
make: Use implicit rules instead of hardcoded lists for tests
1 parent 4818875 commit f5d9619

1 file changed

Lines changed: 34 additions & 59 deletions

File tree

Makefile

Lines changed: 34 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -28,64 +28,39 @@ PORT_DIST_DIR=./dist/ports/$(PORT)/$(BOARD)
2828

2929
UNIX_MICROPYTHON = ./dist/ports/unix/micropython
3030

31-
$(MODULES_PATH)/emlearn_trees.mpy:
32-
make -C src/emlearn_trees/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
3331

34-
$(MODULES_PATH)/emlearn_neighbors.mpy:
35-
make -C src/emlearn_neighbors/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
36-
37-
$(MODULES_PATH)/emlearn_iir.mpy:
38-
make -C src/emlearn_iir/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
39-
40-
$(MODULES_PATH)/emlearn_fft.mpy:
41-
make -C src/emlearn_fft/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
42-
43-
$(MODULES_PATH)/emlearn_cnn_int8.mpy:
44-
make -C src/tinymaix_cnn/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 CONFIG=int8 clean dist
45-
46-
$(MODULES_PATH)/emlearn_cnn_fp32.mpy:
47-
make -C src/tinymaix_cnn/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 CONFIG=fp32 clean dist
48-
49-
$(MODULES_PATH)/emlearn_kmeans.mpy:
50-
make -C src/emlearn_kmeans/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
51-
52-
$(MODULES_PATH)/emlearn_iir_q15.mpy:
53-
make -C src/emlearn_iir_q15/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
54-
55-
$(MODULES_PATH)/emlearn_arrayutils.mpy:
56-
make -C src/emlearn_arrayutils/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
57-
58-
$(MODULES_PATH)/emlearn_linreg.mpy:
59-
make -C src/emlearn_linreg/ ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} V=1 clean dist
60-
61-
emlearn_trees.results: $(MODULES_PATH)/emlearn_trees.mpy
62-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_trees.py
63-
64-
emlearn_neighbors.results: $(MODULES_PATH)/emlearn_neighbors.mpy
65-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_neighbors.py
66-
67-
emlearn_iir.results: $(MODULES_PATH)/emlearn_iir.mpy
68-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_iir.py
69-
70-
emlearn_fft.results: $(MODULES_PATH)/emlearn_fft.mpy
71-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_fft.py
72-
73-
emlearn_cnn.results: $(MODULES_PATH)/emlearn_cnn_int8.mpy $(MODULES_PATH)/emlearn_cnn_fp32.mpy
74-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_cnn.py
75-
76-
emlearn_kmeans.results: $(MODULES_PATH)/emlearn_kmeans.mpy
77-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_kmeans.py
78-
79-
emlearn_iir_q15.results: $(MODULES_PATH)/emlearn_iir_q15.mpy
80-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_iir_q15.py
81-
82-
emlearn_arrayutils.results: $(MODULES_PATH)/emlearn_arrayutils.mpy
83-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_arrayutils.py
84-
85-
emlearn_linreg.results: $(MODULES_PATH)/emlearn_linreg.mpy
86-
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_linreg.py
87-
88-
tests_all.results:
32+
# List of modules
33+
MODULES = emlearn_trees \
34+
emlearn_neighbors \
35+
emlearn_iir \
36+
emlearn_fft \
37+
emlearn_kmeans \
38+
emlearn_iir_q15 \
39+
emlearn_arrayutils \
40+
emlearn_linreg \
41+
emlearn_cnn_int8 \
42+
emlearn_cnn_fp32
43+
44+
# Generate list of .mpy files
45+
MODULE_MPYS = $(addprefix $(MODULES_PATH)/,$(addsuffix .mpy,$(MODULES)))
46+
47+
# Special cases
48+
emlearn_cnn_int8_SRC = src/tinymaix_cnn
49+
emlearn_cnn_int8_CONFIG = CONFIG=int8
50+
emlearn_cnn_fp32_SRC = src/tinymaix_cnn
51+
emlearn_cnn_fp32_CONFIG = CONFIG=fp32
52+
53+
# Generate list of .mpy files
54+
MODULE_MPYS = $(addprefix $(MODULES_PATH)/,$(addsuffix .mpy,$(MODULES)))
55+
56+
# Build dynamic native module
57+
# defaults to
58+
$(MODULES_PATH)/%.mpy:
59+
make -C $(or $($(*)_SRC),src/$*) \
60+
ARCH=$(ARCH) MPY_DIR=$(MPY_DIR_ABS) CFLAGS_EXTRA=${CFLAGS_EXTRA} \
61+
V=1 $($(*)_CONFIG) clean dist
62+
63+
check_unix_natmod: $(MODULE_MPYS)
8964
MICROPYPATH=$(MODULES_PATH) $(MICROPYTHON_BIN) tests/test_all.py
9065

9166
$(PORT_DIR):
@@ -130,8 +105,8 @@ release:
130105
zip -r $(RELEASE_NAME).zip $(RELEASE_NAME)
131106
#cp $(RELEASE_NAME).zip emlearn-micropython-latest.zip
132107

133-
check: tests_all.results
108+
check: check_unix_natmod
134109

135-
dist: $(MODULES_PATH)/emlearn_trees.mpy $(MODULES_PATH)/emlearn_neighbors.mpy $(MODULES_PATH)/emlearn_iir.mpy $(MODULES_PATH)/emlearn_iir_q15.mpy $(MODULES_PATH)/emlearn_fft.mpy $(MODULES_PATH)/emlearn_kmeans.mpy $(MODULES_PATH)/emlearn_arrayutils.mpy $(MODULES_PATH)/emlearn_cnn_int8.mpy $(MODULES_PATH)/emlearn_cnn_fp32.mpy $(MODULES_PATH)/emlearn_linreg.mpy
110+
dist: $(MODULE_MPYS)
136111

137112

0 commit comments

Comments
 (0)