| ################################################################################ |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| ################################################################################ |
| |
| # Determine how to run sphinx-build: |
| # 1. If SPHINXBUILD is set explicitly, use it as-is. |
| # 2. If SPHINXPYTHON is set explicitly, use '$(SPHINXPYTHON) -m sphinx'. |
| # 3. If uv is on PATH, use 'uv run sphinx-build' (deps from pyproject.toml). |
| # 4. Otherwise, fall back to bare 'sphinx-build'. |
| ifndef SPHINXBUILD |
| ifndef SPHINXPYTHON |
| ifneq ($(shell command -v uv 2>/dev/null),) |
| SPHINXBUILD = uv run sphinx-build |
| SPHINXINTL = uv run sphinx-intl |
| PYTHON = uv run python |
| else |
| SPHINXBUILD = sphinx-build |
| SPHINXINTL = sphinx-intl |
| PYTHON = python |
| endif |
| else |
| SPHINXBUILD = $(SPHINXPYTHON) -m sphinx |
| SPHINXINTL = $(SPHINXPYTHON) -m sphinx_intl |
| PYTHON = $(SPHINXPYTHON) |
| endif |
| else |
| SPHINXINTL ?= sphinx-intl |
| PYTHON ?= python |
| endif |
| |
| # The project depends on py4j, so py4j-*-src.zip should be set in PYTHONPATH. |
| py4j_lib = $(shell echo ../lib/py4j-*-src.zip) |
| export PYTHONPATH = $(realpath $(py4j_lib)) |
| |
| # You can set these variables from the command line. |
| SPHINXOPTS ?= |
| PAPER ?= |
| SOURCEDIR ?= . |
| BUILDDIR ?= _build |
| |
| # Internal variables. |
| PAPEROPT_a4 = -D latex_paper_size=a4 |
| PAPEROPT_letter = -D latex_paper_size=letter |
| ALLSPHINXOPTS = -j auto -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . |
| |
| .PHONY: help clean html html-zh zh dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest gettext serve |
| |
| help: |
| @echo "Please use \`make <target>' where <target> is one of" |
| @echo " html to make standalone HTML files" |
| @echo " serve to serve the HTML files locally at http://localhost:8080" |
| @echo " dirhtml to make HTML files named index.html in directories" |
| @echo " pickle to make pickle files" |
| @echo " json to make JSON files" |
| @echo " htmlhelp to make HTML files and a HTML help project" |
| @echo " qthelp to make HTML files and a qthelp project" |
| @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" |
| @echo " changes to make an overview of all changed/added/deprecated items" |
| @echo " linkcheck to check all external links for integrity" |
| @echo " doctest to run all doctests embedded in the documentation (if enabled)" |
| |
| clean: |
| -rm -rf _build/* |
| |
| html: |
| $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html |
| @echo |
| @echo "Build finished. The HTML pages are in _build/html." |
| |
| html-zh: html zh |
| |
| zh: gettext |
| $(SPHINXINTL) update -p _build/gettext -l zh |
| $(SPHINXBUILD) -b html -D language=zh -d _build/doctrees-zh $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . _build/html/zh |
| @echo |
| @echo "Build finished. The Chinese HTML pages are in _build/html/zh." |
| |
| dirhtml: |
| $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) _build/dirhtml |
| @echo |
| @echo "Build finished. The HTML pages are in _build/dirhtml." |
| |
| pickle: |
| $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle |
| @echo |
| @echo "Build finished; now you can process the pickle files." |
| |
| json: |
| $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json |
| @echo |
| @echo "Build finished; now you can process the JSON files." |
| |
| htmlhelp: |
| $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp |
| @echo |
| @echo "Build finished; now you can run HTML Help Workshop with the" \ |
| ".hhp project file in _build/htmlhelp." |
| |
| qthelp: |
| $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) _build/qthelp |
| @echo |
| @echo "Build finished; now you can run "qcollectiongenerator" with the" \ |
| ".qhcp project file in _build/qthelp, like this:" |
| @echo "# qcollectiongenerator _build/qthelp/pyflinkdoc.qhcp" |
| @echo "To view the help file:" |
| @echo "# assistant -collectionFile _build/qthelp/pyflinkdoc.qhc" |
| |
| latex: |
| $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex |
| @echo |
| @echo "Build finished; the LaTeX files are in _build/latex." |
| @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ |
| "run these through (pdf)latex." |
| |
| changes: |
| $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes |
| @echo |
| @echo "The overview file is in _build/changes." |
| |
| linkcheck: |
| $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck |
| @echo |
| @echo "Link check complete; look for any errors in the above output " \ |
| "or in _build/linkcheck/output.txt." |
| |
| doctest: |
| $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest |
| @echo "Testing of doctests in the sources finished, look at the " \ |
| "results in _build/doctest/output.txt." |
| |
| gettext: |
| $(SPHINXBUILD) -b gettext -j auto -d _build/doctrees-gettext $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . _build/gettext |
| @echo |
| @echo "Build finished. The message catalogs are in _build/gettext." |
| |
| pdf: latex |
| cd _build/latex && make all-pdf |
| |
| pdf-html: pdf html |
| cp _build/latex/pyflinkdoc.pdf _build/html |
| |
| serve: |
| @echo "Serving docs at http://localhost:8080" |
| $(PYTHON) -m http.server -d _build/html 8080 |