cache_dir := .cache
orgs := $(wildcard dotfiles/*.org)

tangle_el := elisp/tangle.el

^el = $(filter %.el,$^)
EMACS.funcall = emacs --batch --no-init-file $(addprefix --load ,$(^el)) --funcall

all: tangle

clean:
		rm -rf $(cache_dir)

tangle: $(basename $(orgs))
		$(cache_dir)/%.out: %.org $(tangle_el) $(cache_dir)/
		$(EMACS.funcall) literate-dotfiles-tangle $< > $@

%/:
		mkdir -p $@

%: %.org $(cache_dir)/%.out
		@$(NOOP)

.PHONY: all clean test
.PRECIOUS: $(cache_dir)/ $(cache_dir)/%.out