# Builds static assets # Depends on: # - scss # - inotify-tools # Run `make` to compile static assets # Run `make watch` to recompile whenever a change is made .PHONY: all static watch clean STYLES:=$(patsubst styles/%.scss,static/%.css,$(wildcard styles/*.scss)) STYLES+=$(patsubst styles/%.css,static/%.css,$(wildcard styles/*.css)) SCRIPTS:=$(patsubst scripts/%.js,static/%.js,$(wildcard scripts/*.js)) _STATIC:=$(patsubst _static/%,static/%,$(wildcard _static/*)) static/%: _static/% @mkdir -p static/ cp -r $< $@ static/%.css: styles/%.css @mkdir -p static/ cp $< $@ static/%.css: styles/%.scss @mkdir -p static/ scss -I styles/ $< $@ static/%.js: scripts/%.js @mkdir -p static/ cp $< $@ static: $(STYLES) $(SCRIPTS) $(_STATIC) all: static echo $(STYLES) echo $(SCRIPTS) clean: rm -rf static watch: while inotifywait \ -e close_write scripts/ \ -e close_write styles/ \ -e close_write _static/; \ do make; done