EMACS ?= emacs
PACKAGE = efinger.el
TESTS = test/efinger-test.el

.PHONY: all check compile checkdoc package-lint test clean

all: check test

check: compile checkdoc package-lint

compile:
	"$(EMACS)" --batch --eval "(setq byte-compile-error-on-warn t)" \
		--eval "(byte-compile-file \"$(PACKAGE)\")"

checkdoc:
	"$(EMACS)" --batch --eval "(checkdoc-file \"$(PACKAGE)\")"

package-lint:
	"$(EMACS)" --batch \
		--eval "(require 'package)" \
		--eval "(add-to-list 'package-archives '(\"melpa\" . \"https://melpa.org/packages/\") t)" \
		--eval "(package-initialize)" \
		--eval "(unless (package-installed-p 'package-lint) (package-refresh-contents) (package-install 'package-lint))" \
		--eval "(require 'package-lint)" \
		-f package-lint-batch-and-exit $(PACKAGE)

test:
	"$(EMACS)" --batch -L . -l $(TESTS) -f ert-run-tests-batch-and-exit

clean:
	rm -f *.elc
