articles = $(filter-out public/index,$(patsubst %.md,%,$(wildcard public/*.md))) .DELETE_ON_ERROR: .SECONDARY: all: public/index.html $(addsuffix .html,$(articles)) public/%.html: public/%.md pagerender.rb template.html.erb util.rb Makefile ./pagerender.rb html $< > $@ public/%.atom: public/%.md pagerender.rb template.atom.erb util.rb Makefile ./pagerender.rb atom $< > $@ public/index.md: .var.articles $(addsuffix .md,$(articles)) index.rb Makefile ./index.rb $(filter %.md,$^) > $@ .var.%: FORCE @printf '%s' $(call quote.shell,$($*)) | sed 's/^/#/' | ./write-ifchanged $@ -include $(wildcard .var.*) clean: rm -f -- public/*.html public/*.atom public/index.md .var* .tmp* .PHONY: FORCE .PHONY: all clean define nl endef # I put this as the last line in the file because it confuses Emacs syntax # highlighting and makes the remainder of the file difficult to edit. quote.shell = $(subst $(nl),'$$'\n'','$(subst ','\'',$1)')