Pi-pico_Blink/Makefile
2022-03-14 15:55:00 +01:00

43 lines
1.4 KiB
Makefile

TARGET_ARCH := thumbv6m-none-eabi
ELF2UF2_BIN := ~/.cargo/bin/elf2uf2-rs
PROJECT_NAME := $(shell grep -E "name ?= ?\".*\"" Cargo.toml | grep -oP "(?<=\").*(?=\")")
SRC_FILES := $(shell find src -type f)
DEFAULT_TARGET := help
.PHONY: help
help: ## Display this help messag
@echo "Please use \`make <target>' where <target> is one of"
@grep '^[a-zA-Z]' $(MAKEFILE_LIST) | sort | awk -F ':.*?## ' 'NF==2 {printf "\033[36m %-25s\033[0m %s\n", $$1, $$2}'
.PHONY: build
build: target/$(TARGET_ARCH)/debug/$(PROJECT_NAME).uf2 ## Build the project
.PHONY: release
release: target/$(TARGET_ARCH)/release/$(PROJECT_NAME).uf2 ## Build the project for release
.PHONY: install-build
install-build: build
@sudo mount "$$(lsblk -o PATH,LABEL | grep RPI-RP2 | awk '{print $$1}')" /mnt
@sudo cp target/$(TARGET_ARCH)/debug/$(PROJECT_NAME).uf2 /mnt/
.PHONY: install-release
install-release: release
@sudo mount "$$(lsblk -o PATH,LABEL | grep RPI-RP2 | awk '{print $$1}')" /mnt
@sudo cp target/$(TARGET_ARCH)/release/$(PROJECT_NAME).uf2 /mnt/
Cargo.lock: Cargo.toml
@cargo update
target/$(TARGET_ARCH)/%/$(PROJECT_NAME): $(SRC_FILES) Cargo.toml Cargo.lock
@if [[ "$@" == *"release"* ]]; then \
cargo build --release --target $(TARGET_ARCH); \
else \
cargo build --target $(TARGET_ARCH); \
fi
target/$(TARGET_ARCH)/%/$(PROJECT_NAME).uf2: target/$(TARGET_ARCH)/%/$(PROJECT_NAME)
@$(ELF2UF2_BIN) $^ $@