--- /dev/null
+tool:=$(dir $(lastword $(MAKEFILE_LIST)))
+
+all: $(HOME)/.asciidoc/backends/slidy2
+
+$(HOME)/.asciidoc/backends/slidy2: tool:=$(tool)
+$(HOME)/.asciidoc/backends/slidy2: \
+ $(tool)/.../lib/tool/asciidoc/backend/slidy2/install
+ $<
+
+tool/asciidoc := $(tool)/.../lib/tool/asciidoc
+include $(tool/asciidoc)/GNUmakefile
+
+export VERSION:=$(patsubst v%,%,$(shell which git >/dev/null && \
+ git describe --tags --match 'v[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]' --always || \
+ TZ=UTC date +'v%Y.%m.%d'))
+
+### lib
+tool/lib/targets:=$(addprefix .../,$(shell cd ... && git config -f .gitmodules \
+ --get-regexp submodule'\.lib/.*\.'path | \
+ cut -d ' ' -f 2))
+.PHONY: $(tool/lib/targets) $(tool)/lib/all $(tool)/lib
+$(tool/lib/targets):
+ cd "$(tool)"/... && git submodule update --init -- $(patsubst .../%,%,$@)
+ cd "$(tool)"/$@ && git checkout -f HEAD && git clean -dfx
+$(tool)/.../lib: $(tool)/lib/all
+$(tool)/.../lib/all: $(tool/lib/targets)
+$(tool)/.../lib/tool/asciidoc/GNUmakefile: \
+ $(if $(wildcard .../lib/tool/asciidoc/.git),,.../lib/tool/asciidoc)
+
+
+### slidy
+%.slidy.html: export ASCIIDOC_FLAGS+=-arevnumber="$(VERSION)"
+%.slidy.html: export ASCIIDOC_FLAGS+=-atabsize=0
+%.slidy.html: export ASCIIDOC_FLAGS+=-alatexmath=0
+
+$(patsubst %.ad,%.html,$(wildcard *.slidy.ad)): \
+ $(tool/asciidoc)/conf/latexmath.conf \
+ $(tool/asciidoc)/conf/vim.conf