diff --git a/.gitignore b/.gitignore index 722d5e7..af96791 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .vscode +build diff --git a/Makefile b/Makefile index 9bca313..fc575b4 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,31 @@ -BOARD = --board adafruit:samd:adafruit_trellis_m4 +FQBN = adafruit:samd:adafruit_trellis_m4 -verify: uilleann.ino - arduino --verify $(BOARD) $< +default: build/uilleann.ino.uf2 + +# uf2conv.py is covered by an MIT license. +build/uf2conv.py: + mkdir -p build + curl -L https://raw.githubusercontent.com/microsoft/uf2/master/utils/uf2conv.py > $@ + chmod +x $@ + +%.uf2: %.bin build/uf2conv.py + build/uf2conv.py -b 0x4000 -c -o $@ $< + +build/%.bin: % *.cpp *.h + arduino-builder \ + -build-cache ~/.cache/arduino \ + -build-path build \ + -core-api-version 10813 \ + -fqbn $(FQBN) \ + -hardware ~/.arduino15/packages \ + -tools /app/Arduino/tools-builder \ + -tools ~/.arduino15/packages \ + -hardware /app/Arduino/hardware \ + -hardware ~/.arduino15/packages \ + -built-in-libraries /app/Arduino/libraries \ + -libraries ~/Arduino/libraries \ + -compile \ + $< -install: uilleann.ino - arduino --upload $(BOARD) $< - +upload: uilleann.ino + arduino --upload --board $(FQBN) $<