1- CASK ?= cask
2- EMACS ?= emacs
3- VERSION := $(shell EMACS=$(EMACS ) $(CASK ) version)
1+ ELDEV_DIR ?= .eldev
2+ ELDEV ?= eldev
43
5- SRC = $(wildcard * .el)
6- PACKAGE = dist/swift-mode-$(VERSION ) .tar
4+ INVOKE_ELDEV = ELDEV_DIR="${ELDEV_DIR}" ELDEV="${ELDEV}" ./scripts/invoke_eldev.sh
75
8- .PHONY : help all deps package install test clean
6+ .PHONY : help all deps package install clean test test_in_docker lint
97
108help :
119# # Shows this message.
@@ -18,43 +16,39 @@ help:
1816# - Replace /^## / to " ".
1917# - Remove other comment lines.
2018# - Insert newline before rules.
21- @sed -e '/^\s*$$/d; /^[ .A-Z]/d; /# # no-doc/d; s/^\([^#][^:]*\):.*/\1/; s/^## / /; /^#/d; s/^[^ ]/\n&/' Makefile
19+ @sed -e '/^\s*$$/d; /^[ _ .A-Z]/d; /# # no-doc/d; s/^\([^#][^:]*\):.*/\1/; s/^## / /; /^#/d; s/^[^ ]/\n&/' Makefile
2220
2321all : package
2422# # Builds the package.
2523
2624deps :
2725# # Installs the dependencies.
28- $(CASK) install
26+ ${INVOKE_ELDEV} prepare
2927
30- $(PACKAGE ) : $(SRC ) deps # # no-doc
31- rm -rf dist
32- $(CASK ) package
33-
34- package : $(PACKAGE )
28+ package :
3529# # Builds the package.
30+ ${INVOKE_ELDEV} package
3631
3732install : package
3833# # Installs the package.
39- $(CASK) exec $(EMACS) --batch \
34+ ${INVOKE_ELDEV} emacs --batch \
4035 -l package \
4136 -f package-initialize \
4237 -f package-refresh-contents \
43- --eval '(package-install-file "$(PACKAGE) ")'
38+ --eval '(package-install-file "'"$$( ls dist/*.tar | sort | tail -n 1 )"' ")'
4439
4540clean :
46- # # Cleans the dist directory and *.elc.
47- rm -rf dist *.elc
41+ # # Cleans the dist directory, *.elc, and .eldev .
42+ ${INVOKE_ELDEV} clean all
4843
4944test :
5045# # Tests the package.
51- $(CASK) exec $(EMACS) --batch -q \
52- --eval "(add-to-list 'load-path \""$(shell readlink -f .)"\")" \
53- --eval "(add-to-list 'load-path \""$(shell readlink -f .)"/test\")" \
54- -f batch-byte-compile \
55- *.el
56- $(CASK) exec $(EMACS) --batch -q \
57- --eval "(add-to-list 'load-path \""$(shell readlink -f .)"\")" \
58- --eval "(add-to-list 'load-path \""$(shell readlink -f .)"/test\")" \
59- -l test/swift-mode-test.el \
60- -f swift-mode:run-test
46+ ELDEV_DIR="${ELDEV_DIR}" ELDEV="${ELDEV}" ./scripts/run_test.sh
47+
48+ test_in_docker :
49+ # # Run tests in Docker.
50+ ./scripts/test_in_docker.sh
51+
52+ lint :
53+ # # Run linters.
54+ find ./*.el test/*.el '!' -name '*autoloads.el' -exec env ${INVOKE_ELDEV} lint '{}' '+'
0 commit comments