evennia/docs/Makefile

110 lines
3.2 KiB
Makefile
Raw Normal View History

2020-04-05 00:02:02 +02:00
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
2020-04-05 16:50:52 +02:00
SPHINXOPTS ?=
2020-04-05 00:02:02 +02:00
SPHINXBUILD ?= sphinx-build
2020-04-05 13:26:57 +02:00
SPHINXMULTIVERSION ?= sphinx-multiversion
SPHINXAPIDOC ?= sphinx-apidoc
2020-04-05 00:02:02 +02:00
SOURCEDIR = source
BUILDDIR = build
2020-04-05 13:00:01 +02:00
AUTODOCDIR = $(SOURCEDIR)/api
2020-04-05 00:02:02 +02:00
2020-04-05 11:37:35 +02:00
EVDIR ?= $(realpath ../evennia)
2020-04-05 00:02:02 +02:00
EVGAMEDIR ?= $(realpath ../../gamedir)
2020-04-05 15:02:38 +02:00
cblue = $(shell echo "\033[1m\033[34m")
cnorm = $(shell echo "\033[0m")
QUICKFILES=$(SOURCEDIR)/*.md
2020-04-05 00:02:02 +02:00
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@echo "Evennia-specific: "
2020-04-05 15:02:38 +02:00
@echo " $(cblue)install$(cnorm) to get build requirements"
@echo " $(cblue)clean$(cnorm) to remove remnants of a previous build"
@echo " $(cblue)local$(cnorm) to build local html docs of the current branch (no multiversion)."
@echo " $(cblue)mv-local$(cnorm) to build multiversion html docs, without deploying (req. local git commit)"
@echo " $(cblue)release$(cnorm) to build and deploy multiversion docs online (req. commit and github push access)"
2020-04-05 00:02:02 +02:00
.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
2020-04-05 13:00:01 +02:00
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
2020-04-05 00:02:02 +02:00
# Evennia - custom commands
2020-04-05 16:50:52 +02:00
# helper targets
2020-04-05 00:02:02 +02:00
2020-04-05 13:19:32 +02:00
_check-env:
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) bash -e checkenv.sh
2020-04-05 00:02:02 +02:00
2020-04-05 13:19:32 +02:00
_multiversion-check-env:
2020-04-05 13:00:01 +02:00
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) bash -e checkenv.sh multiversion
2020-04-05 13:19:32 +02:00
_autodoc-index:
2020-04-05 13:26:57 +02:00
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) $(SPHINXAPIDOC) -f -o $(SOURCEDIR)/api/ $(EVDIR)
2020-04-05 13:19:32 +02:00
_multiversion-autodoc-index:
2020-04-05 13:26:57 +02:00
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) $(SPHINXAPIDOC) -f -o $(SOURCEDIR)/api/ $(EVDIR)
2020-04-05 13:02:15 +02:00
git diff-index --quiet HEAD || git commit -a -m "Updated API autodoc index."
2020-04-05 13:00:01 +02:00
2020-04-05 13:19:32 +02:00
_build:
2020-04-05 15:02:38 +02:00
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) $(SPHINXBUILD) $(SPHINXOPTS) "$(SOURCEDIR)" "$(BUILDDIR)/html"
_quick-build:
2020-04-05 16:50:52 +02:00
@NOAUTODOC=1 EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) $(SPHINXBUILD) $(SPHINXOPTS) "$(SOURCEDIR)" "$(BUILDDIR)/html" $(QUICKFILES)
2020-04-05 13:19:32 +02:00
_multiversion-build:
2020-04-05 15:02:38 +02:00
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) $(SPHINXMULTIVERSION) $(SPHINXOPTS) "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS)
2020-04-05 13:00:01 +02:00
2020-04-05 13:19:32 +02:00
_multiversion-deploy:
2020-04-05 00:02:02 +02:00
@bash -e deploy.sh
2020-04-05 16:50:52 +02:00
# main targets
2020-04-05 13:19:32 +02:00
install:
@pip install -r requirements.txt
clean:
@rm -Rf $(BUILDDIR)
@git clean -f -d docs/
@echo "Cleaned old build dir and leftover files."
2020-04-05 15:02:38 +02:00
quick:
make _check-env
make _quick-build $(FILES)
@echo ""
@echo "Documentation built (no autodocs). \nTo see result, open evennia/docs/build/html/index.html in a browser."
2020-04-05 16:50:52 +02:00
local:
2020-04-05 13:19:32 +02:00
make _check-env
2020-04-05 16:50:52 +02:00
make clean
2020-04-05 15:02:38 +02:00
make _autodoc-index
2020-04-05 13:19:32 +02:00
make _build
2020-04-05 13:22:51 +02:00
@echo ""
2020-04-05 13:26:57 +02:00
@echo "Documentation built. \nTo see result, open evennia/docs/build/html/index.html in a browser."
2020-04-05 13:19:32 +02:00
2020-04-05 13:00:01 +02:00
mv-local:
2020-04-05 13:19:32 +02:00
make _multiversion-check-env
2020-04-05 00:02:02 +02:00
make clean
2020-04-05 13:19:32 +02:00
make _multiversion-autodoc-index
make _multiversion-build
2020-04-05 13:26:57 +02:00
@echo "Documentation built. \nTo see result, open evennia/docs/build/html/versions/<version>/index.html in a browser."
2020-04-05 13:00:01 +02:00
2020-04-05 15:02:38 +02:00
deploy:
make _multiversion-deploy
2020-04-05 13:00:01 +02:00
# build and prepare the docs for release
2020-04-05 13:19:32 +02:00
release:
2020-04-05 13:00:01 +02:00
make mv-local
2020-04-05 13:19:32 +02:00
# make _mv-deploy
2020-04-05 00:02:02 +02:00
@echo ""
@echo "Deployment complete."