|  | @@ -5,7 +5,7 @@ ZIP         = zip
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  SKETCH   = max80
 | 
	
		
			
				|  |  |  TARGET   = output/$(SKETCH).ino.bin
 | 
	
		
			
				|  |  | -GENFILES = $(SKETCH)/data/www.zip
 | 
	
		
			
				|  |  | +GENFILES = www.zip
 | 
	
		
			
				|  |  |  WWW      = www
 | 
	
		
			
				|  |  |  PORT	?= /dev/ttyACM2
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -16,21 +16,25 @@ all: $(TARGET)
 | 
	
		
			
				|  |  |  $(TARGET): $(shell find $(SKETCH) -type f) $(GENFILES)
 | 
	
		
			
				|  |  |  	mkdir -p build output
 | 
	
		
			
				|  |  |  	cd $(SKETCH) && \
 | 
	
		
			
				|  |  | -		$(ARDUINO_CLI) compile -b $(BOARD) \
 | 
	
		
			
				|  |  | +		$(ARDUINO_CLI) compile -b $(BOARD) --warnings all \
 | 
	
		
			
				|  |  |  			--build-path ../build --output-dir ../output
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -wwwfiles := $(shell find www -type f -print)
 | 
	
		
			
				|  |  | +.PHONY: zip
 | 
	
		
			
				|  |  | +zip:
 | 
	
		
			
				|  |  | +	mkdir -p zip
 | 
	
		
			
				|  |  | +	cd www && \
 | 
	
		
			
				|  |  | +	$(ZIP) -9DrpX -FS ../zip/www.zip . \
 | 
	
		
			
				|  |  | +		-x '.*' -x '#*' -x '*~' -x '*.bak'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(SKETCH)/data/www.zip: $(wwwfiles)
 | 
	
		
			
				|  |  | -	rm -f $@
 | 
	
		
			
				|  |  | -	( cd www && $(ZIP) -9DrpX - . -x '.*' -x '#*' -x '*~' -x '*.bak' ) \
 | 
	
		
			
				|  |  | -		> $@
 | 
	
		
			
				|  |  | +# Ugly hack but needed to avoid unnecessary rebuilds
 | 
	
		
			
				|  |  | +www.zip: zip
 | 
	
		
			
				|  |  | +	if [ ! -f $@ ] || [ zip/$@ -nt $@ ]; then cp -f zip/$@ $@; fi
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  upload: $(TARGET)
 | 
	
		
			
				|  |  |  	$(ARDUINO_CLI) upload -i $(TARGET) -p $(PORT) -b $(BOARD) $(SKETCH)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  clean:
 | 
	
		
			
				|  |  | -	rm -rf build $(SKETCH)/data/*.zip
 | 
	
		
			
				|  |  | +	rm -rf build zip $(GENFILES)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  spotless: clean
 | 
	
		
			
				|  |  |  	rm -rf output
 |