70 lines
1.8 KiB
Makefile
70 lines
1.8 KiB
Makefile
override SHELL := /bin/sh
|
|
override MAKEFLAGS += --no-print-directory
|
|
|
|
.DEFAULT_GOAL := help
|
|
.DELETE_ON_ERROR:
|
|
|
|
override CARGO := cargo
|
|
override CARGO_FLAGS := --locked --offline
|
|
override DFU_UTIL := dfu-util
|
|
|
|
override EMBEDDED_TARGET := thumbv7em-none-eabihf
|
|
override PACKAGE := kaptan-$(BOARD)
|
|
override TARGET_DIR := ../../target/$(EMBEDDED_TARGET)/release
|
|
override CREATE_IMAGE := ../../scripts/create-dfu-image.sh
|
|
|
|
override DFU_DEVICE := 0483:df11
|
|
override DFU_ALT := 0
|
|
override DFU_ADDRESS := 0x08000000:leave
|
|
|
|
override PRIMARY_GOAL := $(firstword $(MAKECMDGOALS))
|
|
|
|
run:
|
|
@exec python3 ../../../scripts/make-argv.py exec run $(CARGO) build --release \
|
|
$(CARGO_FLAGS) -p $(PACKAGE) --target $(EMBEDDED_TARGET)
|
|
$(CREATE_IMAGE) $(TARGET_DIR)/$(PACKAGE)
|
|
|
|
_build:
|
|
$(CARGO) build --release $(CARGO_FLAGS) -p $(PACKAGE) \
|
|
--target $(EMBEDDED_TARGET)
|
|
$(CREATE_IMAGE) $(TARGET_DIR)/$(PACKAGE)
|
|
|
|
flash: _build
|
|
@printf '%s\n' 'Flashing $(TARGET_DIR)/$(PACKAGE).bin to $(DFU_DEVICE)'
|
|
@exec python3 ../../../scripts/make-argv.py exec flash \
|
|
$(DFU_UTIL) --device $(DFU_DEVICE) --alt $(DFU_ALT) \
|
|
--dfuse-address $(DFU_ADDRESS) \
|
|
--download $(TARGET_DIR)/$(PACKAGE).bin
|
|
|
|
ifeq ($(PRIMARY_GOAL),run)
|
|
|
|
.PHONY: run
|
|
|
|
# Application arguments may also look like Make goals. The run recipe recovers
|
|
# their exact boundaries from the original invocation.
|
|
.DEFAULT:
|
|
@:
|
|
|
|
else
|
|
|
|
ifeq ($(PRIMARY_GOAL),flash)
|
|
|
|
.PHONY: flash _build
|
|
|
|
.DEFAULT:
|
|
@:
|
|
|
|
else
|
|
|
|
.PHONY: help run flash _build
|
|
|
|
help:
|
|
@printf '%s\n' 'Usage: make firmware/boards/$(BOARD) -- <cargo build arguments...>' '' \
|
|
' make firmware/boards/$(BOARD) flash -- <dfu-util arguments...>' '' \
|
|
'With no arguments, this board is built and packaged.' \
|
|
'The flash target builds, packages, and writes this board over DFU.'
|
|
|
|
endif
|
|
|
|
endif
|