Makefile 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. # Makefile for Sphinx documentation
  2. # You can set these variables from the command line.
  3. SPHINXOPTS =
  4. SPHINXBUILD = sphinx-build
  5. PAPER =
  6. BUILDDIR = build
  7. # Custom rules used by top level make
  8. MANGOAL:= $(BUILDDIR)/man/.dirstamp
  9. HTMLGOAL:= $(BUILDDIR)/html/.dirstamp
  10. .PHONY: all distclean distcheck maintainer-clean check test
  11. all: $(MANGOAL) $(HTMLGOAL)
  12. maintainer-clean distclean: clean
  13. distcheck check distdir:
  14. RST_FILES= $(shell find source -type f -name '*.rst')
  15. .DEFAULT_GOAL:= all
  16. .NOTPARALLEL:
  17. SOURCES=
  18. SOURCES+= $(RST_FILES)
  19. SOURCES+= source/conf.py
  20. SOURCES+= Makefile
  21. $(MANGOAL): $(SOURCES)
  22. @$(MAKE) $(AM_MAKEFLAGS) man
  23. @touch $@
  24. $(HTMLGOAL): $(SOURCES)
  25. @$(MAKE) $(AM_MAKEFLAGS) html
  26. @touch $@
  27. # User-friendly check for sphinx-build
  28. ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
  29. $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
  30. endif
  31. # Internal variables.
  32. PAPEROPT_a4 = -D latex_paper_size=a4
  33. PAPEROPT_letter = -D latex_paper_size=letter
  34. ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
  35. # the i18n builder cannot share the environment and doctrees with the others
  36. I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
  37. .PHONY: help clean dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text changes linkcheck doctest gettext
  38. help:
  39. @echo "Please use \`make <target>' where <target> is one of"
  40. @echo " html to make standalone HTML files"
  41. @echo " dirhtml to make HTML files named index.html in directories"
  42. @echo " singlehtml to make a single large HTML file"
  43. @echo " pickle to make pickle files"
  44. @echo " json to make JSON files"
  45. @echo " htmlhelp to make HTML files and a HTML help project"
  46. @echo " qthelp to make HTML files and a qthelp project"
  47. @echo " devhelp to make HTML files and a Devhelp project"
  48. @echo " epub to make an epub"
  49. @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
  50. @echo " latexpdf to make LaTeX files and run them through pdflatex"
  51. @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
  52. @echo " text to make text files"
  53. @echo " man to make manual pages"
  54. @echo " texinfo to make Texinfo files"
  55. @echo " info to make Texinfo files and run them through makeinfo"
  56. @echo " gettext to make PO message catalogs"
  57. @echo " changes to make an overview of all changed/added/deprecated items"
  58. @echo " xml to make Docutils-native XML files"
  59. @echo " pseudoxml to make pseudoxml-XML files for display purposes"
  60. @echo " linkcheck to check all external links for integrity"
  61. @echo " doctest to run all doctests embedded in the documentation (if enabled)"
  62. install:
  63. @echo
  64. clean:
  65. @$(RM) -r $(BUILDDIR)/*
  66. html: $(SOURCES)
  67. $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
  68. dirhtml:
  69. $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
  70. @echo
  71. @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
  72. singlehtml:
  73. $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
  74. @echo
  75. @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
  76. pickle:
  77. $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
  78. json:
  79. $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
  80. @echo
  81. @echo "Build finished; now you can process the JSON files."
  82. htmlhelp:
  83. $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
  84. @echo
  85. @echo "Build finished; now you can run HTML Help Workshop with the" \
  86. ".hhp project file in $(BUILDDIR)/htmlhelp."
  87. qthelp:
  88. $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
  89. @echo
  90. @echo "Build finished; now you can run "qcollectiongenerator" with the" \
  91. ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
  92. @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/gearmand.qhcp"
  93. @echo "To view the help file:"
  94. @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/gearmand.qhc"
  95. devhelp:
  96. $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
  97. @echo
  98. @echo "Build finished."
  99. @echo "To view the help file:"
  100. @echo "# mkdir -p $$HOME/.local/share/devhelp/gearmand"
  101. @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/gearmand"
  102. @echo "# devhelp"
  103. epub:
  104. $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
  105. @echo
  106. @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
  107. latex:
  108. $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
  109. @echo
  110. @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
  111. @echo "Run \`make' in that directory to run these through (pdf)latex" \
  112. "(use \`make latexpdf' here to do that automatically)."
  113. latexpdf:
  114. $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
  115. @echo "Running LaTeX files through pdflatex..."
  116. $(MAKE) -C $(BUILDDIR)/latex all-pdf
  117. @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
  118. latexpdfja:
  119. $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
  120. @echo "Running LaTeX files through platex and dvipdfmx..."
  121. $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
  122. @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
  123. text:
  124. $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
  125. @echo
  126. @echo "Build finished. The text files are in $(BUILDDIR)/text."
  127. man: $(SOURCES)
  128. $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
  129. texinfo:
  130. $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
  131. @echo
  132. @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
  133. @echo "Run \`make' in that directory to run these through makeinfo" \
  134. "(use \`make info' here to do that automatically)."
  135. info:
  136. $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
  137. @echo "Running Texinfo files through makeinfo..."
  138. make -C $(BUILDDIR)/texinfo info
  139. @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
  140. gettext:
  141. $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
  142. @echo
  143. @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
  144. changes:
  145. $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
  146. @echo
  147. @echo "The overview file is in $(BUILDDIR)/changes."
  148. linkcheck:
  149. $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
  150. @echo
  151. @echo "Link check complete; look for any errors in the above output " \
  152. "or in $(BUILDDIR)/linkcheck/output.txt."
  153. doctest:
  154. @$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
  155. @echo "Testing of doctests in the sources finished, look at the " \
  156. "results in $(BUILDDIR)/doctest/output.txt."
  157. xml:
  158. $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
  159. @echo
  160. @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
  161. pseudoxml:
  162. $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
  163. @echo
  164. @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."