11# You can set these variables from the command line.
2- POETRY = poetry
3- SPHINXOPTS = -j auto
2+ POETRY = $( HOME ) /.poetry/bin/ poetry
3+ SPHINXOPTS =
44SPHINXBUILD = $(POETRY ) run sphinx-build
55PAPER =
66BUILDDIR = _build
7- SOURCEDIR = _source
7+ SOURCE_DIR = _source
88
9- # Internal variables
9+ # Internal variables.
1010PAPEROPT_a4 = -D latex_paper_size=a4
1111PAPEROPT_letter = -D latex_paper_size=letter
12- ALLSPHINXOPTS = -d $(BUILDDIR ) /doctrees $(PAPEROPT_$(PAPER ) ) $(SPHINXOPTS ) $(SOURCEDIR )
12+ ALLSPHINXOPTS = -d $(BUILDDIR ) /doctrees $(PAPEROPT_$(PAPER ) ) $(SPHINXOPTS ) $(SOURCE_DIR )
1313TESTSPHINXOPTS = $(ALLSPHINXOPTS ) -W --keep-going
14- I18NSPHINXOPTS = $(PAPEROPT_$(PAPER ) ) $(SPHINXOPTS ) $(SOURCEDIR )
14+
15+ # the i18n builder cannot share the environment and doctrees with the others
16+ I18NSPHINXOPTS = $(PAPEROPT_$(PAPER ) ) $(SPHINXOPTS ) .
1517
1618.PHONY : all
1719all : dirhtml
1820
19- # Setup commands
20- .PHONY : setupenv
21- setupenv :
22- pip install -q poetry
23-
24- .PHONY : setup
25- setup :
26- $(POETRY ) install
27- @if [ ! -d " $( SOURCEDIR) " ]; then mkdir -p " $( SOURCEDIR) " ; fi
28- cp -RL source/* $(SOURCEDIR )
29- cd $(SOURCEDIR ) && find . -name README.md -execdir mv ' {}' index.md ' ;'
30-
31- .PHONY : update
32- update :
33- $(POETRY ) update
34-
35- # Clean commands
3621.PHONY : pristine
3722pristine : clean
3823 git clean -dfX
3924
25+ .PHONY : setup
26+ setup :
27+ ./_utils/setup.sh
28+ cp -TLr source $(SOURCE_DIR )
29+ cd $(SOURCE_DIR ) && find . -name README.md -execdir mv ' {}' index.md ' ;'
4030.PHONY : clean
4131clean :
4232 rm -rf $(BUILDDIR ) /*
43- rm -rf $(SOURCEDIR ) /*
44- rm -f poetry.lock
33+ rm -rf $(SOURCE_DIR ) /*
34+
35+ .PHONY : preview
36+ preview : setup
37+ cd .. && ./docs/_utils/javadoc.sh
38+ $(POETRY ) run sphinx-autobuild -b dirhtml $(ALLSPHINXOPTS ) $(BUILDDIR ) /dirhtml --port 5500
4539
46- # Generate output commands
4740.PHONY : dirhtml
4841dirhtml : setup
49- @$(javadoc )
5042 $(SPHINXBUILD ) -b dirhtml $(ALLSPHINXOPTS ) $(BUILDDIR ) /dirhtml
5143 @echo
5244 @echo " Build finished. The HTML pages are in $( BUILDDIR) /dirhtml."
5345
54- .PHONY : javadoc
55- javadoc : setup
56- cd .. && ./docs/_utils/javadoc.sh
46+ .PHONY : singlehtml
47+ singlehtml : setup
48+ $( SPHINXBUILD ) -b singlehtml $( ALLSPHINXOPTS ) $( BUILDDIR ) /singlehtml
5749 @echo
5850 @echo " Build finished. The HTML page is in $( BUILDDIR) /singlehtml."
5951
60- .PHONY : multiversion
61- multiversion : setup
62- $(POETRY ) run ./_utils/multiversion.sh
63- @echo
64- @echo " Build finished. The HTML pages are in $( BUILDDIR) /dirhtml."
65-
6652.PHONY : epub
67- epub : setup
53+ epub : setup
6854 $(SPHINXBUILD ) -b epub $(ALLSPHINXOPTS ) $(BUILDDIR ) /epub
6955 @echo
7056 @echo " Build finished. The epub file is in $( BUILDDIR) /epub."
7157
7258.PHONY : epub3
73- epub3 :setup
59+ epub3 : setup
7460 $(SPHINXBUILD ) -b epub3 $(ALLSPHINXOPTS ) $(BUILDDIR ) /epub3
7561 @echo
7662 @echo " Build finished. The epub3 file is in $( BUILDDIR) /epub3."
7763
7864.PHONY : dummy
79- dummy : setup
65+ dummy : setup
8066 $(SPHINXBUILD ) -b dummy $(ALLSPHINXOPTS ) $(BUILDDIR ) /dummy
8167 @echo
8268 @echo " Build finished. Dummy builder generates no files."
8369
84- # Preview commands
85- .PHONY : preview
86- preview : setup
87- $(POETRY ) run sphinx-autobuild -b dirhtml $(ALLSPHINXOPTS ) $(BUILDDIR ) /dirhtml --port 5500 --re-ignore ' api/*'
88-
89- .PHONY : multiversionpreview
90- multiversionpreview : multiversion
91- $(POETRY ) run python -m http.server 5500 --directory $(BUILDDIR ) /dirhtml
70+ .PHONY : linkcheck
71+ linkcheck : setup
72+ $(SPHINXBUILD ) -b linkcheck $(SOURCE_DIR ) $(BUILDDIR ) /linkcheck
9273
93- .PHONY : redirects
94- redirects : setup
95- $(POETRY ) run redirects-cli fromfile --yaml-file _utils/redirects.yaml --output-dir $(BUILDDIR ) /dirhtml
74+ .PHONY : multiversion
75+ multiversion : setup
76+ @mkdir -p $(HOME ) /.cache/pypoetry/virtualenvs
77+ $(POETRY ) run ./_utils/multiversion.sh
9678 @echo
9779 @echo " Build finished. The HTML pages are in $( BUILDDIR) /dirhtml."
9880
99- # Test commands
81+ .PHONY : multiversionpreview
82+ multiversionpreview : multiversion
83+ $(POETRY ) run python3 -m http.server 5500 --directory $(BUILDDIR ) /dirhtml
84+
10085.PHONY : test
10186test : setup
10287 $(SPHINXBUILD ) -b dirhtml $(TESTSPHINXOPTS ) $(BUILDDIR ) /dirhtml
10388 @echo
104- @echo " Build finished. The HTML pages are in $( BUILDDIR) /dirhtml."
105-
106- .PHONY : linkcheck
107- linkcheck : setup
108- $(SPHINXBUILD ) -b linkcheck $(SOURCEDIR ) $(BUILDDIR ) /linkcheck
89+ @echo " Build finished. The HTML pages are in $( BUILDDIR) /dirhtml."
0 commit comments