MAKEFLAGS += -R -r dstdir := $(shell pwd) export dstdir ARDUINO = $(PERL) $(realpath arduino-wrapper) ZIP = zip PERL = perl SKETCH = max80 TARGET = output/$(SKETCH).ino.bin GENFILES = www.zip WWW = www PORT ?= /dev/ttyACM0 all: $(TARGET) common = $(SKETCH)/src/common $(TARGET): $(shell find $(SKETCH) -type f) $(GENFILES) if ! test -L '$(common)'; then \ rm -rf '$(common)' ; \ cd '$(SKETCH)/src' && ln -sf ../../../common . ; \ fi cd $(SKETCH) && $(ARDUINO) compile .PHONY: zip zip: zipexclude mkdir -p zip if ! cmp -q ../version.mk www/version 2>/dev/null; then \ cp -f ../version.mk www/version; \ fi cd www && \ TZ=GMT0 \ $(ZIP) -9DrpX -UN=UTF8 -FS ../zip/www.zip . -x@../zipexclude # Ugly hack but needed to avoid unnecessary rebuilds www.zip: zip if [ ! -f $@ ] || [ zip/$@ -nt $@ ]; then \ cp -f zip/$@ $@; \ rm -f build/sketch/www.c build/sketch/www.c.*; \ fi upload: $(TARGET) cd $(SKETCH) && $(ARDUINO) upload -p $(PORT) $(SKETCH) clean: rm -rf build cache zip $(GENFILES) $(common) spotless: clean rm -rf arduino output