blob: 4e8f1634b212a8d6469e9c1e2f010de36d4d6a80 [file] [log] [blame]
John DeNisco2d1a0432018-07-26 16:21:31 -04001# Minimal makefile for Sphinx documentation
2#
Paul Vinciguerra340c15c2019-11-05 15:34:36 -05003# We support MacOS for docs generation
4ifeq ($(shell uname),Darwin)
5OS_ID = darwin
6endif
7
8# Work out the OS if we haven't already
9OS_ID ?= $(shell grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
10
11DOC_DEB_DEPENDS = enchant libenchant-dev
12DOC_RPM_DEPENDS = enchant libenchant-dev
13
John DeNisco2d1a0432018-07-26 16:21:31 -040014
15# You can set these variables from the command line.
16SPHINXOPTS =
17SPHINXBUILD = sphinx-build
jdenisco3bfeff72019-05-17 17:43:31 +000018SPHINXPROJ = fdio-vpp
John DeNisco2d1a0432018-07-26 16:21:31 -040019SOURCEDIR = .
20BUILDDIR = _build
21
22# Put it first so that "make" without argument is like "make help".
23help:
24 @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
25
26.PHONY: help Makefile
27
28# Catch-all target: route all unknown targets to Sphinx using the new
29# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
30%: Makefile
Paul Vinciguerra340c15c2019-11-05 15:34:36 -050031 @echo "Checking whether dependencies for Docs are installed..."
32ifeq ($(OS_ID),ubuntu)
33 @set -e; inst=; \
34 for i in $(DOC_DEB_DEPENDS); do \
35 dpkg-query --show $$i >/dev/null 2>&1 || inst="$$inst $$i"; \
36 done; \
37 if [ "$$inst" ]; then \
38 sudo apt-get update; \
39 sudo apt-get $(CONFIRM) $(FORCE) install $$inst; \
40 fi
41else ifneq ("$(wildcard /etc/redhat-release)","")
42 @sudo yum install $(CONFIRM) $(DOC_RPM_DEPENDS)
43endif
John DeNiscoc96d6182019-11-06 10:58:28 -080044# Disable spell checking for now
45# @python3 -m pip install sphinxcontrib-spelling
46# @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -W -b spelling $(O)
jdenisco3bfeff72019-05-17 17:43:31 +000047 @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)