Files
nRF52840_PTT/justfile
Krzysztof Cieślik d5244c1d66 Switch to Debian apt packages, pin nrfx to v2.9.0
- Replace ARM tarball download with gcc-arm-none-eabi from apt
- Drop TARGETARCH/GCC_VERSION build args — no longer needed
- Pin nrfx submodule to v2.9.0 which still bundles mdk/ headers
- nrfx 3+ dropped mdk/ from the repo
2026-05-21 19:50:25 +02:00

47 lines
1.7 KiB
Makefile

# ── variables ──────────────────────────────────────────────────────────────
image := "ptt-builder"
build_dir := "build"
# podman takes priority over docker
engine := `command -v podman 2>/dev/null \
|| command -v docker 2>/dev/null \
|| { echo "error: podman or docker required" >&2; exit 1; }`
# user-namespace mapping: podman rootless vs docker
user_ns := `command -v podman >/dev/null 2>&1 \
&& echo "--userns=keep-id" \
|| echo "--user $(id -u):$(id -g)"`
# ── recipes ────────────────────────────────────────────────────────────────
# build container image (only rebuilt when Dockerfile changes)
image-build:
{{engine}} build -t {{image}} .
# compile firmware inside the container
build: image-build
{{engine}} run --rm \
{{user_ns}} \
-v "{{justfile_directory()}}:/src:z" \
{{image}} \
sh -c "cmake -B /src/{{build_dir}} -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel /src \
&& ninja -C /src/{{build_dir}}"
# flash firmware via pyocd on the host (requires USB / DAPLink)
flash: build
pyocd flash --target nrf52840 {{build_dir}}/firmware.hex
# start GDB server for debugging
gdbserver:
pyocd gdbserver --target nrf52840 --port 3333
# remove build artifacts
clean:
rm -rf {{build_dir}}
# remove build artifacts AND the container image
clean-all: clean
{{engine}} rmi {{image}} 2>/dev/null || true