flow: add ethernet flow
[vpp.git] / docs / Makefile
index 60e4b90..4e8f163 100644 (file)
@@ -1,10 +1,21 @@
 # Minimal makefile for Sphinx documentation
 #
+# We support MacOS for docs generation
+ifeq ($(shell uname),Darwin)
+OS_ID = darwin
+endif
+
+# Work out the OS if we haven't already
+OS_ID ?= $(shell grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
+
+DOC_DEB_DEPENDS = enchant libenchant-dev
+DOC_RPM_DEPENDS = enchant libenchant-dev
+
 
 # You can set these variables from the command line.
 SPHINXOPTS    =
 SPHINXBUILD   = sphinx-build
-SPHINXPROJ    = fdio-firstcut
+SPHINXPROJ    = fdio-vpp
 SOURCEDIR     = .
 BUILDDIR      = _build
 
@@ -17,4 +28,20 @@ help:
 # 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)
\ No newline at end of file
+       @echo "Checking whether dependencies for Docs are installed..."
+ifeq ($(OS_ID),ubuntu)
+       @set -e; inst=; \
+               for i in $(DOC_DEB_DEPENDS); do \
+                       dpkg-query --show $$i >/dev/null 2>&1 || inst="$$inst $$i"; \
+               done; \
+               if [ "$$inst" ]; then \
+                       sudo apt-get update; \
+                       sudo apt-get $(CONFIRM) $(FORCE) install $$inst; \
+               fi
+else ifneq ("$(wildcard /etc/redhat-release)","")
+       @sudo yum install $(CONFIRM) $(DOC_RPM_DEPENDS)
+endif
+# Disable spell checking for now
+#      @python3 -m pip install sphinxcontrib-spelling
+#      @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -W -b spelling  $(O)
+       @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)