Compare commits

...

7 Commits

Author SHA1 Message Date
contrapunctus d83f119dfc build(Makefile): warn user about Org version if ORG_PATH is unset 2021-06-09 00:05:42 +05:30
contrapunctus 03b03cbc1a build: use comment links in tangled sources 2021-06-08 21:27:58 +05:30
contrapunctus c52c6f29ec doc: credit tomasino, add test migration TODO 2021-06-08 21:27:58 +05:30
contrapunctus 5105c48ffb build(Makefile): bugfix tangling recipe 2021-06-08 21:27:58 +05:30
contrapunctus 40db78cfa0 build(Makefile): continue past clean errors 2021-06-08 21:27:58 +05:30
contrapunctus 47d093ca75 build(Makefile): add clean targets 2021-06-08 21:27:58 +05:30
contrapunctus e56ac6b66d build: add Makefile
I've named it contrapunctus.mk to avoid getting clobbered by the
autogenerated Makefile. If we do away with the autotools stuff, we
could rename it Makefile.
2021-06-08 21:27:53 +05:30
2 changed files with 61 additions and 1 deletions

56
contrapunctus.mk Normal file
View File

@ -0,0 +1,56 @@
.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.
jabber.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 "jabber.org")' ; \
else \
emacs -q -Q --batch \
--eval="(add-to-list 'load-path \"${ORG_PATH}\")" \
--eval="(require 'ob-tangle)" \
--eval='(org-babel-tangle-file "jabber.org")' ; \
fi
tangle: jabber.el
compile: tangle
emacs -q -Q --batch --eval='(byte-compile-file "jabber.el")' ; \
lint-check-declare: tangle
emacs -q -Q --batch --eval='(check-declare-file "jabber.el")'
lint-checkdoc: tangle
emacs -q -Q --batch --eval='(checkdoc-file "jabber.el")'
lint-package-lint: setup tangle
emacs -Q --batch --eval='(package-initialize)' \
--eval="(require 'package-lint)" \
-f 'package-lint-batch-and-exit' jabber.el
lint-relint: setup tangle
emacs -q -Q --batch --eval='(relint-file "jabber.el")'
lint: lint-check-declare lint-checkdoc lint-package-lint lint-relint
clean-tangle:
-rm jabber.el
clean-elc:
-rm *.elc
clean: clean-elc

View File

@ -1,6 +1,6 @@
#+TITLE: jabber.el
#+SUBTITLE: XMPP client for Emacs
#+PROPERTY: header-args :tangle yes :load yes
#+PROPERTY: header-args :tangle yes :load yes :comments link
#+TODO: TODO WIP EXTEND CLEANUP FIXME REVIEW |
* README
@ -144,11 +144,15 @@ It is possible to make various web browsers pass links starting with "xmpp:" to
- 2021 resurrection
+ contrapunctus
- literate Org migration
- Makefile
+ tomasino on #team@irc.tilde.chat
- helping contrapunctus debug the Makefile
* TODO maintenance [0%]
1. [ ] Satisfy =M-x checkdoc=
2. [ ] Use =rx= where regular expressions get hairy
3. [ ] hexrgb.el is not available on MELPA
4. [ ] Migrate tests to ERT/Buttercup/etc
* About this file
jabber.el is an Org literate program. Tangling is done automatically after each save.