23
23
# THE SOFTWARE.
24
24
#
25
25
26
-
27
26
.SUFFIXES : # ignore builtin rules
28
- .PHONY : all clean slc-clean slc-generate finalbuild dependents
29
-
30
- # Select the board to build for.
31
- ifeq ($(BOARD ) ,)
32
- $(error You must provide a BOARD parameter)
33
- else
34
- ifeq ($(wildcard boards/$(BOARD ) /.) ,)
35
- $(error Invalid BOARD specified)
36
- endif
37
- endif
38
-
27
+ .PHONY : all clean slc-clean slc-generate dependents
39
28
# Values set by the initial generation
40
29
PROJECTNAME = circuitpython_efr32
41
-
42
30
# If the build directory is not given, make it reflect the board name.
43
31
SILABS_BUILD = build-$(BOARD )
44
32
# Build dir for CircuitPython
@@ -48,25 +36,8 @@ OUTPUT_DIR = $(SILABS_BUILD)
48
36
# Python script to generate pins and pins functionalities code
49
37
PY_GEN_PINS_SRC ?= tools/make_pins.py
50
38
51
- FLASH_TOML_DIR = ../../data/nvm.toml/flash/macronix/
52
-
39
+ # SLC tool path
53
40
SLC_PATH = $(realpath $(CURDIR ) ) /tools/build-tools/slc_cli
54
- export PATH := $(SLC_PATH ) :$(PATH )
55
-
56
- # Default goal
57
- all : $(OUTPUT_DIR ) /firmware.bin
58
-
59
- $(OUTPUT_DIR ) /firmware.bin :
60
- ifeq (,$(wildcard $(SILABS_BUILD ) /$(PROJECTNAME ) .Makefile) )
61
- +@$(MAKE) --no-print-directory slc-generate
62
- -@echo 'Project is generated. Run make again'
63
- +@$(MAKE) --no-print-directory finalbuild_$(BOARD)
64
- else
65
- +@$(MAKE) --no-print-directory finalbuild_$(BOARD)
66
- endif
67
-
68
- # Include sub-makefiles
69
- -include $(SILABS_BUILD ) /$(PROJECTNAME ) .project.mak
70
41
71
42
CFLAGS = $(INCLUDES ) $(C_DEFS ) $(C_FLAGS ) \
72
43
-Wno-expansion-to-defined \
@@ -76,26 +47,7 @@ CFLAGS = $(INCLUDES) $(C_DEFS) $(C_FLAGS) \
76
47
77
48
ASMFLAGS = $(INCLUDES ) $(ASM_DEFS ) $(ASM_FLAGS ) $(DEPFLAGS )
78
49
79
- # Env-specific
80
- include ../../py/mkenv.mk
81
- # Board-specific
82
- include boards/$(BOARD ) /mpconfigboard.mk
83
- # Port-specific
84
- include mpconfigport.mk
85
-
86
- # CircuitPython-specific
87
- include $(TOP ) /py/circuitpy_mpconfig.mk
88
-
89
- # qstr definitions (must come before including py.mk)
90
- QSTR_DEFS = qstrdefsport.h
91
-
92
- # include py core make definitions
93
- include $(TOP ) /py/py.mk
94
-
95
- include $(TOP ) /supervisor/supervisor.mk
96
-
97
- # Include make rules and variables common across CircuitPython builds.
98
- include $(TOP ) /py/circuitpy_defns.mk
50
+ include ../../py/circuitpy_mkenv.mk
99
51
100
52
CROSS_COMPILE = arm-none-eabi-
101
53
@@ -112,7 +64,6 @@ INC += -I$(SILABS_BUILD)/config
112
64
INC += -I./boards
113
65
INC += -I./peripherals
114
66
INC += -I../../lib/mp-readline
115
- # D INC += -I../../supervisor/shared/usb
116
67
117
68
# Debugging/Optimization
118
69
ifeq ($(DEBUG ) , 1)
@@ -131,7 +82,6 @@ CFLAGS += $(INC) $(BASE_CFLAGS) $(C_DEFS) $(CFLAGS_MOD) $(COPT)
131
82
CFLAGS += -DEFR32_SERIES_LOWER='"$(MCU_VARIANT ) "'
132
83
CFLAGS += -Wno-undef -Wno-shadow -Wno-cast-align -Wno-nested-externs -Wno-strict-prototypes
133
84
134
-
135
85
SRC_C += \
136
86
background.c \
137
87
mphalport.c \
@@ -141,10 +91,6 @@ ifeq ('$(BOARD)','brd2601b')
141
91
SRC_C += boards/$(BOARD ) /sensor.c
142
92
endif
143
93
144
- ifneq ($(CIRCUITPY_USB ) ,0)
145
- SRC_C += lib/tinyusb/src/portable/st/synopsys/dcd_synopsys.c
146
- endif
147
-
148
94
SRC_S = boards/mp_efr32xg24_gchelper.s
149
95
150
96
SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL ) ) \
@@ -184,13 +130,25 @@ SRC_QSTR_PREPROCESSOR +=
184
130
185
131
MCU_SECTIONS = $^ $@
186
132
187
- finalbuild_devkit_xg24_brd2601b : $(FLASH_TOML_DIR ) /MX25R3235F.toml $(SILABS_BUILD ) /pin_functions.h $(SILABS_BUILD ) /pins.c $(OUTPUT_DIR ) /firmware.out
133
+ # Include sub-makefiles
134
+ -include $(SILABS_BUILD ) /$(PROJECTNAME ) .project.mak
135
+
136
+ # Default goal
137
+ all :
138
+ ifeq (,$(wildcard $(SILABS_BUILD ) /$(PROJECTNAME ) .Makefile) )
139
+ +@$(MAKE) --no-print-directory slc-generate
140
+ +@$(MAKE) --no-print-directory $(OUTPUT_DIR)/firmware.out
141
+ else
142
+ +@$(MAKE) --no-print-directory $(OUTPUT_DIR)/firmware.out
143
+ endif
188
144
189
- finalbuild_explorerkit_xg24_brd2703a : $( SILABS_BUILD ) /pin_functions.h $(SILABS_BUILD ) /pins.c $(OUTPUT_DIR ) /firmware.out
145
+ $( OUTPUT_DIR ) /firmware.bin : $(SILABS_BUILD ) /$( PROJECTNAME ) .Makefile $(OUTPUT_DIR ) /firmware.out
190
146
191
- finalbuild_sparkfun_thingplus_matter_mgm240p_brd2704a : $(SILABS_BUILD ) /pin_functions.h $(SILABS_BUILD ) /pins.c $(OUTPUT_DIR ) /firmware.out
147
+ $(SILABS_BUILD ) /$(PROJECTNAME ) .Makefile :
148
+ +@$(MAKE ) --no-print-directory slc-generate
149
+ +@$(MAKE ) --no-print-directory $(OUTPUT_DIR ) /firmware.out
192
150
193
- $(OUTPUT_DIR ) /firmware.out : $(OBJ ) $(OBJS ) $(LIB_FILES )
151
+ $(OUTPUT_DIR ) /firmware.out : $(SILABS_BUILD ) /pin_functions.h $( SILABS_BUILD ) /pins.c $( OBJ ) $(OBJS ) $(LIB_FILES )
194
152
@echo ' Linking $(OUTPUT_DIR)/firmware.out'
195
153
@echo " $( OBJS) $( OBJ) " > $(OUTPUT_DIR ) /linker_objs
196
154
$(CC ) $(LD_FLAGS ) @$(OUTPUT_DIR ) /linker_objs $(LIBS ) -o $(OUTPUT_DIR ) /firmware.out
@@ -199,38 +157,38 @@ $(OUTPUT_DIR)/firmware.out: $(OBJ) $(OBJS) $(LIB_FILES)
199
157
$(OBJCOPY ) $(OUTPUT_DIR ) /firmware.out -O srec $(OUTPUT_DIR ) /firmware.s37
200
158
@echo ' Done.'
201
159
160
+ $(SILABS_BUILD ) /pin_functions.h :
161
+ $(STEPECHO ) " GEN $@ "
162
+ $(Q )$(PYTHON ) $(PY_GEN_PINS_SRC ) -e $@ boards/$(BOARD ) /pins.csv boards/$(BOARD ) /pin_functions.csv
163
+ @-rm pins.c
164
+
165
+ $(SILABS_BUILD ) /pins.c :
166
+ $(STEPECHO ) " GEN $@ "
167
+ $(Q )$(PYTHON ) $(PY_GEN_PINS_SRC ) -s $@ boards/$(BOARD ) /pins.csv boards/$(BOARD ) /pin_functions.csv
168
+ @-rm pin_functions.h
169
+
202
170
slc-generate :
203
171
+@$(MAKE ) -C tools all
172
+ -@cp -f boards/$(BOARD ) /MX25R3235F.toml ../../data/nvm.toml/flash/macronix/MX25R3235F.toml
173
+ ifeq (,$(wildcard $(SLC_PATH ) /bin/slc-cli/developer/adapter_packs/python/lib/python3.6/jinja2) )
204
174
-@ln -s $(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/site-packages/jinja2 \
205
175
$(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/jinja2
206
176
-@ln -s $(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/site-packages/markupsafe \
207
177
$(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/markupsafe
178
+ endif
208
179
@echo 'SLC generates project'
209
- @slc configuration --sdk gecko_sdk
210
- @slc signature trust -extpath cp_efr32_extension
211
- @slc signature trust --sdk gecko_sdk
212
- @slc generate -name=$(PROJECTNAME ) $(PROJECTNAME ) .slcp --sdk gecko_sdk --with $(BOARD_BRD ) -tlcn gcc -d=$(SILABS_BUILD )
180
+ @$(SLC_PATH)/ slc configuration --sdk gecko_sdk
181
+ @$(SLC_PATH)/ slc signature trust -extpath cp_efr32_extension
182
+ @$(SLC_PATH)/ slc signature trust --sdk gecko_sdk
183
+ @$(SLC_PATH)/ slc generate -name=$(PROJECTNAME) $(PROJECTNAME).slcp --sdk gecko_sdk --with $(BOARD_BRD) -tlcn gcc -d=$(SILABS_BUILD)
213
184
@sed -i 's/ autogen\// $(SILABS_BUILD)\/autogen\//g' $(SILABS_BUILD)/circuitpython_efr32.project.mak
214
185
@sed -i 's/-T"autogen\//-T"$(SILABS_BUILD)\/autogen\//g' $(SILABS_BUILD)/circuitpython_efr32.project.mak
186
+
215
187
slc-clean :
216
188
@echo ' SLC cleaning'
217
- +@$(MAKE ) clean
218
189
$(RM ) -fr $(SILABS_BUILD )
219
190
$(RM ) -fr ./tools/build-tools
220
191
221
- $(SILABS_BUILD ) /pin_functions.h :
222
- $(STEPECHO ) " GEN $@ "
223
- $(Q )$(PYTHON ) $(PY_GEN_PINS_SRC ) -e $@ boards/$(BOARD ) /pins.csv boards/$(BOARD ) /pin_functions.csv
224
- @-rm pins.c
225
-
226
- $(SILABS_BUILD ) /pins.c :
227
- $(STEPECHO ) " GEN $@ "
228
- $(Q )$(PYTHON ) $(PY_GEN_PINS_SRC ) -s $@ boards/$(BOARD ) /pins.csv boards/$(BOARD ) /pin_functions.csv
229
- @-rm pin_functions.h
230
-
231
- $(FLASH_TOML_DIR ) /MX25R3235F.toml :
232
- cp -f boards/$(BOARD ) /MX25R3235F.toml $(FLASH_TOML_DIR ) /MX25R3235F.toml
233
-
234
192
# Override ECHO
235
193
$(OBJS ) : ECHO =
236
194
$(OBJS ) :
0 commit comments