aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile67
1 files changed, 13 insertions, 54 deletions
diff --git a/Makefile b/Makefile
index 2144a92..c5621ac 100644
--- a/Makefile
+++ b/Makefile
@@ -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: