Makefile 5.0 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. PAPER =
  7. BUILDDIR = _build
  8. BUILDDIR_HTML = $(HTMLDIR)/libpython
  9. MYGISBASE = $(GISBASE)
  10. # Internal variables.
  11. PAPEROPT_a4 = -D latex_paper_size=a4
  12. PAPEROPT_letter = -D latex_paper_size=letter
  13. ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) -c . src/
  14. # the i18n builder cannot share the environment and doctrees with the others
  15. I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
  16. SPHINXBUILD = sphinx-build
  17. SPHINXAPIDOC = sphinx-apidoc
  18. # some distros come with a different name
  19. BUILD := $(type $(SPHINXBUILD) >/dev/null) || (SPHINXBUILD = sphinx-build2)
  20. APIDOC := $(type $(SPHINXAPIDOC) >/dev/null) || (SPHINXAPIDOC = sphinx-apidoc2)
  21. checksphinx:
  22. @echo "SPHINXBUILD: Found <$(SPHINXBUILD)>"
  23. @echo "SPHINXAPIDOC: Found <$(SPHINXAPIDOC)>"
  24. @(type $(SPHINXBUILD) > /dev/null || (echo "ERROR: Install 'sphinx-build' software first (get from http://sphinx-doc.org)" && exit 1))
  25. @(type $(SPHINXAPIDOC) > /dev/null || (echo "ERROR: Install 'sphinx-apidoc' software first (get from http://sphinx-doc.org)" && exit 1))
  26. .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp checksphinx libpythonapidoc libpythonclean libpythondirhtml libpythondoctest libpythonepub libpythonhelp libpythonhtml libpythonlatex libpythonlatexpdf libpythonman libpythonsinglehtml
  27. .DEFAULT_GOAL := libpythonhelp
  28. libpythonhelp:
  29. @echo "Please use \`make <target>' where <target> is one of"
  30. @echo " libpythonhtml to make standalone HTML files"
  31. @echo " libpythondirhtml to make HTML files named index.html in directories"
  32. @echo " libpythonsinglehtml to make a single large HTML file"
  33. @echo " libpythonepub to make an epub"
  34. @echo " libpythonlatex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
  35. @echo " libpythonlatexpdf to make LaTeX files and run them through pdflatex"
  36. @echo " libpythonman to make manual pages"
  37. @echo " libpythondoctest to run all doctests embedded in the documentation (if enabled)"
  38. libpythonclean:
  39. -rm -rf $(BUILDDIR)/*
  40. -rm -f _templates/layout.html
  41. -rm -f src/ctypes*.rst
  42. -rm -f src/exceptions.rst
  43. -rm -f src/gunittest.*rst
  44. -rm -f src/imaging.rst
  45. -rm -f src/pydispatch.rst
  46. -rm -f src/pygrass.*rst
  47. -rm -f src/script.rst
  48. -rm -f src/temporal.rst
  49. libpythonapidoc:
  50. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  51. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../imaging/)
  52. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../exceptions/)
  53. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../gunittest/ ../gunittest/multireport.py ../gunittest/multirunner.py ../gunittest/main.py)
  54. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../pydispatch/)
  55. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../pygrass/)
  56. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../script/)
  57. $(call run_grass,$(SPHINXAPIDOC) -T -f -o src/ ../temporal/)
  58. libpythonhtml: checksphinx
  59. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  60. $(call run_grass,$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR_HTML))
  61. @echo
  62. @echo "Build finished. The HTML pages are in $(BUILDDIR_HTML)"
  63. libpythondirhtml:
  64. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  65. $(call run_grass,$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR_HTML))
  66. @echo
  67. @echo "Build finished. The HTML pages are in $(BUILDDIR_HTML)"
  68. libpythonsinglehtml:
  69. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  70. $(call run_grass,$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR_HTML))
  71. @echo
  72. @echo "Build finished. The HTML page is in $(BUILDDIR_HTML)"
  73. libpythonepub:
  74. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  75. $(call run_grass,$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub)
  76. @echo
  77. @echo "Build finished. The epub file is in $(BUILDDIR)/epub/"
  78. # requires:
  79. # texlive-titlesec texlive-framed texlive-threeparttable texlive-wrapfig texlive-upquote texlive-multirow
  80. libpythonlatex:
  81. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  82. $(call run_grass,$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex)
  83. @echo
  84. @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
  85. @echo "Run \`make' in that directory to run these through (pdf)latex" \
  86. "(use \`make latexpdf' here to do that automatically)."
  87. libpythonlatexpdf:
  88. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  89. $(call run_grass,$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex)
  90. @echo "Running LaTeX files through pdflatex..."
  91. $(MAKE) -C $(BUILDDIR)/latex all-pdf
  92. @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex/"
  93. libpythonman:
  94. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  95. $(call run_grass,$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(MANDIR))
  96. @echo
  97. @echo "Build finished. The manual pages are in $(MANDIR)/"
  98. libpythondoctest:
  99. @echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
  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."