diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 67 |
1 files changed, 13 insertions, 54 deletions
@@ -3,35 +3,20 @@ EMACS ?= emacs SED ?= sed FILES = $(filter-out evil-test-helpers.el evil-tests.el evil-pkg.el,$(wildcard evil*.el)) VERSION := $(shell $(SED) -ne '/define-package/,$$p' evil-pkg.el | $(SED) -ne '/^\s*"[[:digit:]]\+\(\.[[:digit:]]\+\)*"\s*$$/ s/^.*"\(.*\)".*$$/\1/p') -ELPAPKG = evil-$(VERSION) PROFILER = DOC = doc TAG = +EASK ?= eask ELCFILES = $(FILES:.el=.elc) -.PHONY: all compile compile-batch docstrings doc clean tests test emacs term terminal profiler indent elpa version +.PHONY: all compile docstrings doc clean tests test emacs term terminal profiler indent elpa version # Byte-compile Evil. all: compile -compile: $(ELCFILES) -.depend: $(FILES) - @echo Compute dependencies - @rm -f .depend - @for f in $(FILES); do \ - $(SED) -n "s/ *(require '\(evil-[^)]*\).*)/$${f}c: \1.elc/p" $$f >> .depend;\ - done - --include .depend - -$(ELCFILES): %.elc: %.el - $(EMACS) --batch -Q -L . -f batch-byte-compile $< - -# Byte-compile all files in one batch. This is faster than -# compiling each file in isolation, but also less stringent. -compile-batch: clean - $(EMACS) --batch -Q -L . -f batch-byte-compile ${FILES} +compile: + $(EASK) compile # Documentation. docstrings: @@ -45,25 +30,20 @@ info: doc # Delete byte-compiled files etc. clean: - rm -f *~ - rm -f \#*\# - rm -f *.elc - rm -f .depend - @$(MAKE) -C doc clean + $(EASK) clean all # Run tests. # The TAG variable may specify a test tag or a test name: # make test TAG=repeat # This will only run tests pertaining to the repeat system. test: - $(EMACS) -nw -Q --batch -L . -l evil-tests.el \ - --eval "(evil-tests-initialize '(${TAG}) '(${PROFILER}))" + $(EASK) run command test # Byte-compile Evil and run all tests. tests: compile - $(EMACS) -nw -Q -L . -l evil-tests.el \ - --eval "(evil-tests-initialize '(${TAG}) '(${PROFILER}))" - rm -f *.elc .depend + $(EASK) run command test + $(EASK) clean elc + rm -f .depend # Load Evil in a fresh instance of Emacs and run all tests. emacs: @@ -74,42 +54,21 @@ emacs: # Load Evil in a terminal Emacs and run all tests. term: terminal terminal: - $(EMACS) -nw -Q -L . -l evil-tests.el \ - --eval "(evil-mode 1)" \ - --eval "(evil-tests-initialize '(${TAG}) '(${PROFILER}) t)" + $(EASK) run command terminal # Run all tests with profiler. profiler: - $(EMACS) --batch -Q -L . -l evil-tests.el \ - --eval "(evil-tests-initialize '(${TAG}) (or '(${PROFILER}) t))" + $(EASK) run command profiler # Re-indent all Evil code. # Loads Evil into memory in order to indent macros properly. # Also removes trailing whitespace, tabs and extraneous blank lines. indent: clean - $(EMACS) --batch --eval '(setq vc-handled-backends nil)' ${FILES} evil-tests.el -Q -L . -l evil-tests.el \ - --eval "(dolist (buffer (reverse (buffer-list))) \ - (when (buffer-file-name buffer) \ - (set-buffer buffer) \ - (message \"Indenting %s\" (current-buffer)) \ - (setq-default indent-tabs-mode nil) \ - (untabify (point-min) (point-max)) \ - (indent-region (point-min) (point-max)) \ - (delete-trailing-whitespace) \ - (untabify (point-min) (point-max)) \ - (goto-char (point-min)) \ - (while (re-search-forward \"\\n\\\\{3,\\\\}\" nil t) \ - (replace-match \"\\n\\n\")) \ - (when (buffer-modified-p) (save-buffer 0))))" + $(EASK) run command indent # Create an ELPA package. elpa: - @echo "Creating ELPA package $(ELPAPKG).tar" - @rm -rf ${ELPAPKG} - @mkdir ${ELPAPKG} - @cp $(FILES) COPYING evil-pkg.el ${ELPAPKG} - @tar cf ${ELPAPKG}.tar ${ELPAPKG} - @rm -rf ${ELPAPKG} + $(EASK) package # Change the version using make VERSION=x.y.z version: |
