Makefile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. MAKEFLAGS += -R -r
  2. dstdir := $(shell pwd)
  3. export dstdir
  4. ARDUINO = $(PERL) $(realpath arduino-wrapper)
  5. ZIP = zip
  6. PERL = perl
  7. SKETCH = max80
  8. TARGET = output/$(SKETCH).ino.bin
  9. GENFILES = www.zip
  10. WWW = www
  11. PORT ?= /dev/ttyACM0
  12. all: $(TARGET)
  13. common = $(SKETCH)/src/common
  14. $(TARGET): $(shell find $(SKETCH) -type f) $(GENFILES)
  15. if ! test -L '$(common)'; then \
  16. rm -rf '$(common)' ; \
  17. cd '$(SKETCH)/src' && ln -sf ../../../common . ; \
  18. fi
  19. cd $(SKETCH) && $(ARDUINO) compile
  20. .PHONY: zip
  21. zip: zipexclude
  22. mkdir -p zip
  23. if ! cmp -q ../version.mk www/version 2>/dev/null; then \
  24. cp -f ../version.mk www/version; \
  25. fi
  26. cd www && \
  27. TZ=GMT0 \
  28. $(ZIP) -9DrpX -UN=UTF8 -FS ../zip/www.zip . -x@../zipexclude
  29. # Ugly hack but needed to avoid unnecessary rebuilds
  30. www.zip: zip
  31. if [ ! -f $@ ] || [ zip/$@ -nt $@ ]; then \
  32. cp -f zip/$@ $@; \
  33. rm -f build/sketch/www.c build/sketch/www.c.*; \
  34. fi
  35. upload: $(TARGET)
  36. cd $(SKETCH) && $(ARDUINO) upload -p $(PORT) $(SKETCH)
  37. clean:
  38. rm -rf build cache zip $(GENFILES) $(common)
  39. spotless: clean
  40. rm -rf arduino output