define EMACS_TANGLE (progn\ (require 'package)\ (package-refresh-contents nil)\ (setq vc-follow-symlinks nil)\ (find-file \"init.org\")\ (require 'ob-tangle)\ (org-babel-tangle nil \"init.el\")) endef EMACS := ${NIX_LINK}/bin/emacs # The first target is the default. `all` is typically defined here. all: init.elc # These targets don't pertain to files .PHONY: all clean init.el: $(EMACS) --batch --no-init-file --eval "$(EMACS_TANGLE)" --kill init.elc: init.el $(EMACS) --batch --no-init-file --funcall batch-byte-compile init.el clean: rm init.el init.elc