# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
info_TEXINFOS = doc/guix.texi
+
+DOT_FILES = \
+ doc/images/bootstrap-graph.dot \
+ doc/images/coreutils-graph.dot \
+ doc/images/coreutils-bag-graph.dot \
+ doc/images/service-graph.dot \
+ doc/images/dmd-graph.dot
+
+DOT_VECTOR_GRAPHICS = \
+ $(DOT_FILES:%.dot=%.eps) \
+ $(DOT_FILES:%.dot=%.pdf)
+
EXTRA_DIST += \
+ doc/contributing.texi \
doc/emacs.texi \
doc/fdl-1.3.texi \
- doc/images/bootstrap-graph.dot \
- doc/images/bootstrap-graph.eps \
- doc/images/bootstrap-graph.pdf
+ $(DOT_FILES) \
+ $(DOT_VECTOR_GRAPHICS) \
+ doc/images/coreutils-size-map.eps \
+ doc/environment-gdb.scm \
+ doc/package-hello.scm
OS_CONFIG_EXAMPLES_TEXI = \
doc/os-config-bare-bones.texi \
cp "$<" "$@"
infoimagedir = $(infodir)/images
-dist_infoimage_DATA = doc/images/bootstrap-graph.png
+dist_infoimage_DATA = \
+ $(DOT_FILES:%.dot=%.png) \
+ doc/images/coreutils-size-map.png
# Try hard to obtain an image size and aspect that's reasonable for inclusion
# in an Info or PDF document.
$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$@.tmp"
mv "$@.tmp" "$@"
+.png.eps:
+ convert "$<" "$@-tmp.eps"
+ mv "$@-tmp.eps" "$@"
+
# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake)
# Extending"). Using the `-local' rules is imperfect, because they may be
# triggered after the main rule. Oh, well.
-pdf-local: $(top_srcdir)/doc/images/bootstrap-graph.pdf
-info-local: $(top_srcdir)/doc/images/bootstrap-graph.png
-ps-local: $(top_srcdir)/doc/images/bootstrap-graph.eps
+pdf-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.pdf)
+info-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.png)
+ps-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.eps) \
+ $(top_srcdir)/doc/images/coreutils-size-map.eps
+dvi-local: ps-local
+
+\f
+# Manual pages.
+
+doc/guix.1: $(SUBCOMMANDS:%=guix/scripts/%.scm)
+ -LANGUAGE= $(top_builddir)/pre-inst-env \
+ $(HELP2MAN) --output="$@" guix
+
+# Note: Do not depend on 'guix-daemon' since that would trigger a rebuild even
+# for people building from a tarball.
+doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
+ -LANGUAGE= $(top_builddir)/pre-inst-env \
+ $(HELP2MAN) --output="$@" guix-daemon
+
+define subcommand-manual-target
+
+doc/guix-$(1).1: guix/scripts/$(1).scm
+ -LANGUAGE= $(top_builddir)/pre-inst-env \
+ $(HELP2MAN) --output="$$@" "guix $(1)"
+
+endef
+
+SUBCOMMANDS := \
+ archive \
+ build \
+ challenge \
+ download \
+ edit \
+ environment \
+ gc \
+ hash \
+ import \
+ lint \
+ package \
+ publish \
+ pull \
+ refresh \
+ size \
+ system
+
+$(eval $(foreach subcommand,$(SUBCOMMANDS), \
+ $(call subcommand-manual-target,$(subcommand))))
+
+dist_man1_MANS = \
+ doc/guix.1 \
+ $(SUBCOMMANDS:%=doc/guix-%.1)
+
+if BUILD_DAEMON
+
+dist_man1_MANS += \
+ doc/guix-daemon.1
+
+endif