45 lines
1.3 KiB
Makefile
45 lines
1.3 KiB
Makefile
export INSTALL_PATH := $(PWD)
|
|
|
|
SDK_VERSION := 2.1.0
|
|
PICOTOOL := $(INSTALL_PATH)/picotool/$(SDK_VERSION)/build/picotool
|
|
|
|
export PICO_SDK_PATH=$(INSTALL_PATH)/sdk/$(SDK_VERSION)
|
|
# if using a different platform or arch, set it here
|
|
export PICO_PLATFORM=rp2350
|
|
|
|
# project name, need to be passed as make input (ex: make project name=test)
|
|
name := ""
|
|
|
|
install:
|
|
@./scripts/install_sdk.bash $(SDK_VERSION)
|
|
@./scripts/install_picotool.bash $(SDK_VERSION)
|
|
@./scripts/install_freertos.bash
|
|
|
|
info:
|
|
@$(PICOTOOL) info -a
|
|
|
|
.check-name:
|
|
ifeq ($(strip $(name)), "")
|
|
@echo "error: project name must be set, ex: name=<project_name>"
|
|
@false
|
|
endif
|
|
|
|
ifeq ($(shell test -d $(name) && echo "ok"),)
|
|
@echo "error: project $(name) does not exist"
|
|
@false
|
|
endif
|
|
|
|
project: .check-name
|
|
@./scripts/scaffold_project.bash $(name) $(SDK_VERSION)
|
|
|
|
format: .check-name
|
|
@test -f "$(shell find /usr/bin/ -name astyle)" && astyle --style=java --indent=spaces=4 -K -xC120 $(name)/*.c
|
|
|
|
compile: format
|
|
rm -f ${name}/build/CMakeCache.txt
|
|
@(test -d ${name} && mkdir -p ${name}/build && cd ${name}/build && cmake .. && make -j$(nproc) && echo "project compile successfully") || echo "error: unable to compile project: $(name)"
|
|
|
|
push: compile
|
|
@(test -f $(name)/build/$(name).elf && $(PICOTOOL) load -fx -v $(name)/build/$(name).elf) || echo "error: unable to push project $(name) to device"
|
|
|