2022-12-07 02:31:57 +08:00
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
|
|
|
|
SPHINXOPTS ?=
|
|
|
|
SPHINXBUILD ?= sphinx-build
|
|
|
|
PYTHON ?= python3
|
|
|
|
VENV ?= env
|
|
|
|
PIP_FLAGS ?= -q
|
|
|
|
SERVEOPTS ?=
|
2022-12-23 04:45:29 +08:00
|
|
|
SUDO ?= sudo
|
2022-12-29 14:23:47 +08:00
|
|
|
INSTALLOPTS ?= -Su
|
2022-12-07 02:31:57 +08:00
|
|
|
SOURCEDIR = .
|
|
|
|
BUILDDIR = _build
|
|
|
|
|
2023-01-08 06:28:10 +08:00
|
|
|
VOID_PKGS = python3-rst2ansi python3-sphinx-tabs python3-sphinx_rtd_theme python3-recommonmark python3-sphinx-copybutton
|
2022-12-23 04:45:29 +08:00
|
|
|
|
2022-12-08 14:44:06 +08:00
|
|
|
.PHONY: help setup serve envclean requirements.txt Makefile setup-void gen-man
|
2022-12-07 02:31:57 +08:00
|
|
|
|
|
|
|
help:
|
|
|
|
@echo "Use \033[94mmake setup\033[m to set up a virtual environment."
|
|
|
|
@echo "Use \033[94mmake setup-void\033[m to install dependencies on Void Linux."
|
|
|
|
@echo "Use \033[94mmake serve\033[m to run a simple HTTP server for viewing the html docs."
|
|
|
|
@echo "Use \033[94mmake envclean\033[m to remove the virtual environment."
|
|
|
|
ifneq ("$(wildcard $(VENV))","")
|
|
|
|
@echo
|
|
|
|
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS)
|
|
|
|
endif
|
|
|
|
|
2022-12-08 14:44:06 +08:00
|
|
|
gen-man: man
|
|
|
|
@rm -rf $(SOURCEDIR)/man/dist
|
|
|
|
@cp -r $(BUILDDIR)/man $(SOURCEDIR)/man/dist
|
|
|
|
|
2022-12-07 02:31:57 +08:00
|
|
|
setup-void:
|
2022-12-29 14:23:47 +08:00
|
|
|
@$(SUDO) xbps-install $(INSTALLOPTS) $(VOID_PKGS)
|
2022-12-07 02:31:57 +08:00
|
|
|
|
|
|
|
setup: $(VENV)/req_done
|
|
|
|
|
|
|
|
serve: html
|
|
|
|
@$(PYTHON) -m http.server -d "$(BUILDDIR)/html" $(SERVEOPTS)
|
|
|
|
|
|
|
|
envclean:
|
|
|
|
@rm -rf $(VENV)
|
|
|
|
|
2022-12-23 04:45:29 +08:00
|
|
|
clean-void:
|
|
|
|
@$(SUDO) xbps-remove -R $(VOID_PKGS)
|
|
|
|
|
2022-12-07 02:31:57 +08:00
|
|
|
$(VENV)/success:
|
|
|
|
ifeq ("$(wildcard $(VENV))","")
|
|
|
|
@echo "Creating the virtual environment at $(VENV)"
|
|
|
|
@$(PYTHON) -m venv $(VENV)
|
|
|
|
@touch $(VENV)/success
|
|
|
|
endif
|
|
|
|
|
|
|
|
$(VENV)/req_done: requirements.txt $(VENV)/success
|
|
|
|
@echo "Installing dependencies from requirements.txt"
|
|
|
|
@. $(VENV)/bin/activate && \
|
|
|
|
pip install $(PIP_FLAGS) -U pip wheel && \
|
|
|
|
pip install $(PIP_FLAGS) -U -r requirements.txt
|
|
|
|
@touch $(VENV)/req_done
|
|
|
|
|
|
|
|
%:: Makefile
|
|
|
|
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS)
|