EMACS = emacs EMACSFLAGS = -L . CASK = cask VAGRANT = vagrant ELS = $(wildcard *.el) OBJECTS = $(ELS:.el=.elc) .depend: $(ELS) @echo Compute dependencies @rm -f .depend @for f in $(ELS); do \ sed -n "s/(require '\(\(cider\|nrepl\)-.*\)).*$$/$${f}c: \1.elc/p" $$f >> .depend;\ done -include .depend elpa: $(CASK) install $(CASK) update touch $@ .PHONY: build build : elpa $(OBJECTS) .PHONY: test test : build $(CASK) exec $(EMACS) --no-site-file --no-site-lisp --batch \ $(EMACSFLAGS) \ -l test/run-tests .PHONY: virtual-test virtual-test : $(VAGRANT) up $(VAGRANT) ssh -c "make -C /vagrant EMACS=$(EMACS) clean test" .PHONY: clean clean : rm -f .depend $(OBJECTS) .PHONY: elpaclean elpaclean : clean rm -f elpa rm -rf .cask # Clean packages installed for development %.elc : %.el $(CASK) exec $(EMACS) --no-site-file --no-site-lisp --batch \ $(EMACSFLAGS) \ -f batch-byte-compile $<