summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile30
1 files changed, 23 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index de1cfa9..b144c89 100644
--- a/Makefile
+++ b/Makefile
@@ -5,11 +5,27 @@ articles = $(filter-out public/index,$(patsubst %.md,%,$(wildcard public/*.md)))
all: public/index.html $(addsuffix .html,$(articles))
-public/%.html: public/%.md pagerender.rb template.erb Makefile
- ./pagerender.rb $< > $@
-public/index.md: public/ $(addsuffix .md,$(articles)) index.rb Makefile
- ./index.rb $(filter-out public/ index.rb Makefile $@,$^) > $@
- touch public/
- touch $@
+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/index.md
+ 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)')