Makefile 832 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. MAKEFLAGS += -R -r
  2. ARDUINO_CLI = arduino-cli
  3. ZIP = zip
  4. SKETCH = max80
  5. TARGET = output/$(SKETCH).ino.bin
  6. GENFILES = www.zip
  7. WWW = www
  8. PORT ?= /dev/ttyACM2
  9. BOARD = esp32:esp32:esp32s2usb
  10. all: $(TARGET)
  11. $(TARGET): $(shell find $(SKETCH) -type f) $(GENFILES)
  12. mkdir -p build output
  13. cd $(SKETCH) && \
  14. $(ARDUINO_CLI) compile -b $(BOARD) --warnings all \
  15. --build-path ../build --output-dir ../output
  16. .PHONY: zip
  17. zip:
  18. mkdir -p zip
  19. cd www && \
  20. $(ZIP) -9DrpX -FS ../zip/www.zip . \
  21. -x '.*' -x '#*' -x '*~' -x '*.bak'
  22. # Ugly hack but needed to avoid unnecessary rebuilds
  23. www.zip: zip
  24. if [ ! -f $@ ] || [ zip/$@ -nt $@ ]; then cp -f zip/$@ $@; fi
  25. upload: $(TARGET)
  26. $(ARDUINO_CLI) upload -i $(TARGET) -p $(PORT) -b $(BOARD) $(SKETCH)
  27. clean:
  28. rm -rf build zip $(GENFILES)
  29. spotless: clean
  30. rm -rf output