gnu: Add ruby-ffi.
[jackhill/guix/guix.git] / doc.am
diff --git a/doc.am b/doc.am
index df85cfe..e3a91cc 100644 (file)
--- a/doc.am
+++ b/doc.am
 # 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                        \
@@ -39,7 +54,9 @@ doc/os-config-%.texi: gnu/system/examples/%.tmpl
        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.
@@ -59,9 +76,68 @@ DOT_OPTIONS =                                        \
        $(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