MAKEFLAGS += -j1 # Default target all: out/index.html out/main.css phony += all # Boilerplate phony += FORCE .DELETE_ON_ERROR: .SECONDARY: # Development server serve: serve-8000 serve-%: all dir=$$(mktemp -d -t) && trap 'fusermount -u "$$dir"; rmdir "$$dir"' EXIT && unionfs -o ro out:src "$$dir" && (cd "$$dir" && python3 -m http.server $*) phony += serve serve-% # Clean clean: rm -rf out phony += clean # Real file rules out/%.css: src/%.scss @mkdir -p $(@D) scss --stdin < $< > $@ targets = $(phony) %.css $(sort $(filter-out $(targets),out/index.html $(MAKECMDGOALS))): FORCE ./bin/sitegen # Boilerplate .PHONY: $(phony)