Makefile 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # Makefile for Sphinx documentation
  2. #
  3. MODULE_TOPDIR=../../..
  4. include $(MODULE_TOPDIR)/include/Make/Vars.make
  5. include $(MODULE_TOPDIR)/include/Make/Rules.make
  6. # You can set these variables from the command line.
  7. SPHINXOPTS =
  8. APIDOC := $(shell sphinx-apidoc2 --help 2>/dev/null)
  9. ifdef APIDOC
  10. SPHINXAPIDOC = sphinx-apidoc2
  11. else
  12. APIDOC := $(shell sphinx-apidoc --help 2>/dev/null)
  13. ifdef APIDOC
  14. SPHINXAPIDOC = sphinx-apidoc
  15. endif
  16. endif
  17. BUILD := $(shell sphinx-build2 --version 2>/dev/null)
  18. ifdef BUILD
  19. SPHINXBUILD = sphinx-build2
  20. else
  21. BUILD := $(shell sphinx-build --version 2>/dev/null)
  22. ifdef BUILD
  23. SPHINXBUILD = sphinx-build
  24. endif
  25. endif
  26. PAPER =
  27. BUILDDIR = _build
  28. BUILDDIR_HTML = $(HTMLDIR)/libpython
  29. MYGISBASE = $(GISBASE)
  30. # Internal variables.
  31. PAPEROPT_a4 = -D latex_paper_size=a4
  32. PAPEROPT_letter = -D latex_paper_size=letter
  33. ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) -c . src/
  34. # the i18n builder cannot share the environment and doctrees with the others
  35. I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
  36. .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
  37. .DEFAULT_GOAL := help
  38. libpythonhelp:
  39. @echo "Please use \`make <target>' where <target> is one of"
  40. @echo " libpythonhtml to make standalone HTML files"
  41. @echo " libpythondirhtml to make HTML files named index.html in directories"
  42. @echo " libpythonsinglehtml to make a single large HTML file"
  43. @echo " libpythonepub to make an epub"
  44. @echo " libpythonlatex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
  45. @echo " libpythonlatexpdf to make LaTeX files and run them through pdflatex"
  46. @echo " libpythonman to make manual pages"
  47. @echo " libpythondoctest to run all doctests embedded in the documentation (if enabled)"
  48. libpythonclean:
  49. -rm -rf $(BUILDDIR)/*
  50. -rm -f _templates/layout.html
  51. -rm -f src/ctypes*.rst
  52. -rm -f src/exceptions.rst
  53. -rm -f src/gunittest.*rst
  54. -rm -f src/imaging.rst
  55. -rm -f src/pydispatch.rst
  56. -rm -f src/pygrass.*rst
  57. -rm -f src/script.rst
  58. -rm -f src/temporal.rst
  59. libpythonapidoc:
  60. @echo $(SPHINXAPIDOC)
  61. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../imaging/)
  62. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../exceptions/)
  63. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../gunittest/)
  64. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../pydispatch/)
  65. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../pygrass/)
  66. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../script/)
  67. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../temporal/)
  68. libpythonhtml:
  69. $(call run_grass,$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR_HTML))
  70. @echo
  71. @echo "Build finished. The HTML pages are in $(BUILDDIR_HTML)"
  72. libpythondirhtml:
  73. $(call run_grass,$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR_HTML))
  74. @echo
  75. @echo "Build finished. The HTML pages are in $(BUILDDIR_HTML)"
  76. libpythonsinglehtml:
  77. $(call run_grass,$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR_HTML))
  78. @echo
  79. @echo "Build finished. The HTML page is in $(BUILDDIR_HTML)"
  80. libpythonepub:
  81. $(call run_grass,$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub)
  82. @echo
  83. @echo "Build finished. The epub file is in $(BUILDDIR)/epub/"
  84. libpythonlatex:
  85. $(call run_grass,$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex)
  86. @echo
  87. @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
  88. @echo "Run \`make' in that directory to run these through (pdf)latex" \
  89. "(use \`make latexpdf' here to do that automatically)."
  90. libpythonlatexpdf:
  91. $(call run_grass,$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex)
  92. @echo "Running LaTeX files through pdflatex..."
  93. $(MAKE) -C $(BUILDDIR)/latex all-pdf
  94. @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex/"
  95. libpythonman:
  96. $(call run_grass,$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(MANDIR))
  97. @echo
  98. @echo "Build finished. The manual pages are in $(MANDIR)/"
  99. libpythondoctest:
  100. $(call run_grass,$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest)
  101. @echo "Testing of doctests in the sources finished, look at the " \
  102. "results in $(BUILDDIR)/doctest/output.txt."