openpgp-notes/book/Makefile
David Runge 91fea4f45d
Add make target to rebuild HTML files when markdown changes
Signed-off-by: David Runge <dave@sleepmap.de>
2023-12-04 22:37:00 +01:00

52 lines
1.9 KiB
Makefile

# SPDX-FileCopyrightText: 2023 The "Notes on OpenPGP" project
# SPDX-License-Identifier: CC0-1.0
#
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
CODESPELL ?= codespell
EBOOK_VIEWER ?= ebook-viewer
EPUBCHECK ?= epubcheck
SPHINXOPTS ?= -W
SPHINXBUILD ?= sphinx-build
LYCHEE ?= lychee
PRINTF ?= printf
WATCHEXEC ?= watchexec
SOURCEDIR = source
BUILDDIR = build
epub-check: clean epub
@$(EPUBCHECK) "$(BUILDDIR)/epub/"*.epub
# use watchexec to rebuild the EPUB whenever a markdown file changes
# this target kills *any* open instance of calibre's ebook-viewer, that is currently showing OpenPGPforapplicationdevelopers.epub
epub-watch:
@$(WATCHEXEC) --shell bash -e css,md 'make clean epub && ev_pid="$$(pgrep -af "^python3.*ebook-viewer.*OpenPGPforapplicationdevelopers" | cut -f1 -d " ")" && if [[ -n "$$ev_pid" ]]; then kill -9 "$$ev_pid"; fi && $(EBOOK_VIEWER) $(BUILDDIR)/epub/OpenPGPforapplicationdevelopers.epub &'
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
html-linkcheck: clean html
@$(LYCHEE) "$(BUILDDIR)/html/"*.html
# use watchexec to rebuild the HTML whenever a markdown file changes
html-watch:
@$(WATCHEXEC) --shell bash -e css,md 'make clean html'
# spell check all sources
# NOTE: diagrams are not yet spell checked, but we emit the required changes
codespell:
@$(PRINTF) "The following change suggestions are only warnings! (Please don't fix them)\n"
@$(CODESPELL) source/diag || true
@$(PRINTF) "The following change suggestions are errors!\n"
@$(CODESPELL) .
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)