diff options
author | Stanislaw Klekot <[email protected]> | 2017-10-30 20:39:07 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2018-01-24 13:23:15 +0100 |
commit | ad88794506a0ccf0671dd9b909890e0a80b346cc (patch) | |
tree | bd407f6dbf3f3ac82cc82d0f485ca9938c6774cb /plugins | |
parent | f545564473f0f92cc5b266616b289cf6266e9e28 (diff) | |
download | erlang.mk-ad88794506a0ccf0671dd9b909890e0a80b346cc.tar.gz erlang.mk-ad88794506a0ccf0671dd9b909890e0a80b346cc.tar.bz2 erlang.mk-ad88794506a0ccf0671dd9b909890e0a80b346cc.zip |
Add support for Sphinx documentation builder
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/sphinx.mk | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/plugins/sphinx.mk b/plugins/sphinx.mk new file mode 100644 index 0000000..4718247 --- /dev/null +++ b/plugins/sphinx.mk @@ -0,0 +1,62 @@ +# Copyright 2017, Stanislaw Klekot <[email protected]> +# This file is part of erlang.mk and subject to the terms of the ISC License. + +.PHONY: distclean-sphinx sphinx + +# Configuration. + +SPHINX_BUILD ?= sphinx-build +SPHINX_SOURCE ?= doc +SPHINX_CONFDIR ?= +SPHINX_FORMATS ?= html +SPHINX_DOCTREES ?= $(ERLANG_MK_TMP)/sphinx.doctrees +SPHINX_OPTS ?= + +#sphinx_html_opts = +#sphinx_html_output = html +#sphinx_man_opts = +#sphinx_man_output = man +#sphinx_latex_opts = +#sphinx_latex_output = latex + +# Helpers. + +sphinx_build_0 = @echo " SPHINX" $1; $(SPHINX_BUILD) -N -q +sphinx_build_1 = $(SPHINX_BUILD) -N +sphinx_build_2 = set -x; $(SPHINX_BUILD) +sphinx_build = $(sphinx_build_$(V)) + +define sphinx.build +$(call sphinx_build,$1) -b $1 -d $(SPHINX_DOCTREES) $(if $(SPHINX_CONFDIR),-c $(SPHINX_CONFDIR)) $(SPHINX_OPTS) $(sphinx_$1_opts) -- $(SPHINX_SOURCE) $(call sphinx.output,$1) + +endef + +define sphinx.output +$(if $(sphinx_$1_output),$(sphinx_$1_output),$1) +endef + +# Targets. + +ifneq ($(wildcard $(if $(SPHINX_CONFDIR),$(SPHINX_CONFDIR),$(SPHINX_SOURCE))/conf.py),) +docs:: sphinx +distclean:: distclean-sphinx +endif + +help:: + $(verbose) printf "%s\n" "" \ + "Sphinx targets:" \ + " sphinx Generate Sphinx documentation." \ + "" \ + "ReST sources and 'conf.py' file are expected in directory pointed by" \ + "SPHINX_SOURCE ('doc' by default). SPHINX_FORMATS lists formats to build (only" \ + "'html' format is generated by default); target directory can be specified by" \ + 'setting sphinx_$${format}_output, for example: sphinx_html_output = output/html' \ + "Additional Sphinx options can be set in SPHINX_OPTS." + +# Plugin-specific targets. + +sphinx: + $(foreach F,$(SPHINX_FORMATS),$(call sphinx.build,$F)) + +distclean-sphinx: + $(gen_verbose) rm -rf $(filter-out $(SPHINX_SOURCE),$(foreach F,$(SPHINX_FORMATS),$(call sphinx.output,$F))) |