60 lines
1.6 KiB
Makefile
60 lines
1.6 KiB
Makefile
# kttl — STM32F411 kettle controller
|
|
# Run `just` to list recipes.
|
|
|
|
# udev rules shipped with this repo (probe-rs probe permissions on Linux)
|
|
rules_src := "etc/69-probe-rs.rules"
|
|
rules_dst := "/etc/udev/rules.d/69-probe-rs.rules"
|
|
|
|
# Default: show available recipes
|
|
default:
|
|
@just --list
|
|
|
|
# One-shot dev setup: install toolchain bits + probe permissions
|
|
setup: install-tools probe-setup
|
|
@echo "Setup complete. Plug in the probe (re-plug if it was already connected)."
|
|
|
|
# Install the Rust target and the host tools this project links/flashes with
|
|
install-tools:
|
|
rustup target add thumbv7em-none-eabihf
|
|
|
|
# Set up probe-rs probe access on Linux: install udev rules + reload
|
|
# https://probe.rs/docs/getting-started/probe-setup/
|
|
probe-setup:
|
|
@echo "Installing udev rules -> {{rules_dst}} (needs sudo)"
|
|
sudo install -m 0644 {{rules_src}} {{rules_dst}}
|
|
sudo udevadm control --reload
|
|
sudo udevadm trigger
|
|
@# plugdev group is referenced by the rules; create it and add the user if missing
|
|
sudo groupadd --system plugdev 2>/dev/null || true
|
|
sudo usermod -aG plugdev "$USER"
|
|
@echo "If the probe was already plugged in, unplug and reconnect it."
|
|
@echo "A new group membership requires a fresh login to take effect."
|
|
|
|
# List debug probes probe-rs can see (verifies setup worked)
|
|
probes:
|
|
probe-rs list
|
|
|
|
# Build the firmware (debug)
|
|
build:
|
|
cargo build
|
|
|
|
# Build optimized
|
|
release:
|
|
cargo build --release
|
|
|
|
# Flash + run on the target, streaming defmt logs over RTT
|
|
run:
|
|
cargo run --release
|
|
|
|
# Compile checks / lints / format
|
|
check:
|
|
cargo check
|
|
clippy:
|
|
cargo clippy
|
|
fmt:
|
|
cargo fmt
|
|
|
|
# Remove build artifacts
|
|
clean:
|
|
cargo clean
|