MAKEFLAGS += -j1 # Default target all: out/index.html 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 # For real files, just let the ./make script take care of it. $(sort out/index.html $(filter-out $(phony),$(MAKECMDGOALS))): FORCE ./make # Boilerplate .PHONY: $(phony)