dotemacs/Makefile

57 lines
1.7 KiB
Makefile

.phony: all setup tangle compile lint clean
all: setup tangle compile lint
setup:
emacs --batch --eval="(package-initialize)" \
--eval="(mapcar #'package-install '(indent-lint package-lint relint))"
# No -q or -Q without ORG_PATH - if the user has a newer version of
# Org, we want to use it.
init-org.el:
if [ -z "${ORG_PATH}" ]; then \
echo ; \
echo "[WARNING] ORG_PATH is unset. Org versions older than 9.3.8 have a bug" ; \
echo "which result in them always using absolute paths in comment links in" ; \
echo "tangled source files. If your Org version is older than 9.3.8, please" ; \
echo "upgrade it before tangling." ; \
echo ; \
emacs --batch \
--eval="(require 'ob-tangle)" \
--eval='(org-babel-tangle-file "init.org")' ; \
else \
emacs -q -Q --batch \
--eval="(add-to-list 'load-path \"${ORG_PATH}\")" \
--eval="(require 'ob-tangle)" \
--eval='(org-babel-tangle-file "init.org")' ; \
fi
tangle: init-org.el
compile: tangle
emacs -q -Q --batch --eval='(byte-compile-file "init-org.el")' ; \
lint-check-declare: tangle
emacs -q -Q --batch --eval='(check-declare-file "init-org.el")'
lint-checkdoc: tangle
emacs -q -Q --batch --eval='(checkdoc-file "init-org.el")'
lint-package-lint: setup tangle
emacs -Q --batch --eval='(package-initialize)' \
--eval="(require 'package-lint)" \
-f 'package-lint-batch-and-exit' init-org.el
lint-relint: setup tangle
emacs -q -Q --batch --eval='(relint-file "init-org.el")'
lint: lint-check-declare lint-checkdoc lint-package-lint lint-relint
clean-tangle:
-rm init-org.el
clean-elc:
-rm *.elc
clean: clean-elc