Files
pico/pico1w/ampel/build.sh
T
2026-07-04 02:44:36 +02:00

47 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Baut die ampel-Firmware und flasht sie optional gleich auf den Pico.
#
# ./build.sh -> nur bauen
# ./build.sh -f -> bauen und flashen (Pico muss im BOOTSEL-Modus sein)
# ./build.sh --clean -> vorher build/ loeschen
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
SDK_PATH="/home/irrlicht/Projekte/pico/reference/pico-sdk"
FLASH_SCRIPT="$HERE/../flash.sh"
DO_FLASH=0
DO_CLEAN=0
for arg in "$@"; do
case "$arg" in
-f|--flash) DO_FLASH=1 ;;
--clean) DO_CLEAN=1 ;;
*) echo "Unbekanntes Argument: $arg" >&2; exit 1 ;;
esac
done
cd "$HERE"
if [ $DO_CLEAN -eq 1 ]; then
echo "Loesche build/ ..."
rm -rf build
fi
# cmake nur bei fehlendem Build-Ordner explizit aufrufen — sonst reicht ninja,
# das erkennt CMakeLists.txt-Aenderungen selbst.
if [ ! -f build/build.ninja ]; then
cmake -S . -B build -G Ninja -DPICO_SDK_PATH="$SDK_PATH"
fi
ninja -C build
UF2="$HERE/build/ampel.uf2"
echo
echo "Fertig: $UF2 ($(stat -c%s "$UF2") Byte)"
if [ $DO_FLASH -eq 1 ]; then
echo
"$FLASH_SCRIPT" "$UF2"
fi