Skip to content

Commit f387673

Browse files
Update makefile
1 parent 5c4dfcf commit f387673

File tree

1 file changed

+37
-79
lines changed

1 file changed

+37
-79
lines changed

ports/silabs/Makefile

Lines changed: 37 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,10 @@
2323
# THE SOFTWARE.
2424
#
2525

26-
2726
.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
3928
# Values set by the initial generation
4029
PROJECTNAME = circuitpython_efr32
41-
4230
# If the build directory is not given, make it reflect the board name.
4331
SILABS_BUILD = build-$(BOARD)
4432
# Build dir for CircuitPython
@@ -48,25 +36,8 @@ OUTPUT_DIR = $(SILABS_BUILD)
4836
# Python script to generate pins and pins functionalities code
4937
PY_GEN_PINS_SRC ?= tools/make_pins.py
5038

51-
FLASH_TOML_DIR = ../../data/nvm.toml/flash/macronix/
52-
39+
# SLC tool path
5340
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
7041

7142
CFLAGS = $(INCLUDES) $(C_DEFS) $(C_FLAGS) \
7243
-Wno-expansion-to-defined \
@@ -76,26 +47,7 @@ CFLAGS = $(INCLUDES) $(C_DEFS) $(C_FLAGS) \
7647

7748
ASMFLAGS = $(INCLUDES) $(ASM_DEFS) $(ASM_FLAGS) $(DEPFLAGS)
7849

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
9951

10052
CROSS_COMPILE = arm-none-eabi-
10153

@@ -112,7 +64,6 @@ INC += -I$(SILABS_BUILD)/config
11264
INC += -I./boards
11365
INC += -I./peripherals
11466
INC += -I../../lib/mp-readline
115-
#D INC += -I../../supervisor/shared/usb
11667

11768
#Debugging/Optimization
11869
ifeq ($(DEBUG), 1)
@@ -131,7 +82,6 @@ CFLAGS += $(INC) $(BASE_CFLAGS) $(C_DEFS) $(CFLAGS_MOD) $(COPT)
13182
CFLAGS += -DEFR32_SERIES_LOWER='"$(MCU_VARIANT)"'
13283
CFLAGS += -Wno-undef -Wno-shadow -Wno-cast-align -Wno-nested-externs -Wno-strict-prototypes
13384

134-
13585
SRC_C += \
13686
background.c \
13787
mphalport.c \
@@ -141,10 +91,6 @@ ifeq ('$(BOARD)','brd2601b')
14191
SRC_C += boards/$(BOARD)/sensor.c
14292
endif
14393

144-
ifneq ($(CIRCUITPY_USB),0)
145-
SRC_C += lib/tinyusb/src/portable/st/synopsys/dcd_synopsys.c
146-
endif
147-
14894
SRC_S = boards/mp_efr32xg24_gchelper.s
14995

15096
SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL)) \
@@ -184,13 +130,25 @@ SRC_QSTR_PREPROCESSOR +=
184130

185131
MCU_SECTIONS = $^ $@
186132

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
188144

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
190146

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
192150

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)
194152
@echo 'Linking $(OUTPUT_DIR)/firmware.out'
195153
@echo "$(OBJS) $(OBJ)" > $(OUTPUT_DIR)/linker_objs
196154
$(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)
199157
$(OBJCOPY) $(OUTPUT_DIR)/firmware.out -O srec $(OUTPUT_DIR)/firmware.s37
200158
@echo 'Done.'
201159

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+
202170
slc-generate:
203171
+@$(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))
204174
-@ln -s $(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/site-packages/jinja2 \
205175
$(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/jinja2
206176
-@ln -s $(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/site-packages/markupsafe \
207177
$(SLC_PATH)/bin/slc-cli/developer/adapter_packs/python/lib/python3.6/markupsafe
178+
endif
208179
@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)
213184
@sed -i 's/ autogen\// $(SILABS_BUILD)\/autogen\//g' $(SILABS_BUILD)/circuitpython_efr32.project.mak
214185
@sed -i 's/-T"autogen\//-T"$(SILABS_BUILD)\/autogen\//g' $(SILABS_BUILD)/circuitpython_efr32.project.mak
186+
215187
slc-clean:
216188
@echo 'SLC cleaning'
217-
+@$(MAKE) clean
218189
$(RM) -fr $(SILABS_BUILD)
219190
$(RM) -fr ./tools/build-tools
220191

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-
234192
#Override ECHO
235193
$(OBJS): ECHO =
236194
$(OBJS):

0 commit comments

Comments
 (0)