# GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
+# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
+# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
#
# This file is part of GNU Guix.
#
# 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/bootstrap-packages.dot \
+ doc/images/coreutils-graph.dot \
+ doc/images/coreutils-bag-graph.dot \
+ doc/images/service-graph.dot \
+ doc/images/shepherd-graph.dot
+
+DOT_VECTOR_GRAPHICS = \
+ $(DOT_FILES:%.dot=%.eps) \
+ $(DOT_FILES:%.dot=%.pdf)
+
EXTRA_DIST += \
+ doc/htmlxref.cnf \
+ 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 \
MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI)
doc/os-config-%.texi: gnu/system/examples/%.tmpl
- $(MKDIR_P) "`dirname "$@"`"
+ $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \
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.
-Nfontsize=9 -Nheight=.1 -Nwidth=.1
.dot.png:
- $(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$@.tmp"
- mv "$@.tmp" "$@"
+ $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
+ mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
.dot.pdf:
- $(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$@.tmp"
- mv "$@.tmp" "$@"
+ $(AM_V_DOT)$(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
+ mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
.dot.eps:
- $(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$@.tmp"
- mv "$@.tmp" "$@"
+ $(AM_V_DOT)$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
+ mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+
+.png.eps:
+ $(AM_V_GEN)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
+
+## ----------- ##
+## Man pages. ##
+## ----------- ##
+
+sub_commands_mans = \
+ doc/guix-archive.1 \
+ doc/guix-build.1 \
+ doc/guix-challenge.1 \
+ doc/guix-download.1 \
+ doc/guix-edit.1 \
+ doc/guix-environment.1 \
+ doc/guix-gc.1 \
+ doc/guix-hash.1 \
+ doc/guix-import.1 \
+ doc/guix-lint.1 \
+ doc/guix-package.1 \
+ doc/guix-publish.1 \
+ doc/guix-pull.1 \
+ doc/guix-refresh.1 \
+ doc/guix-size.1 \
+ doc/guix-system.1
+
+dist_man1_MANS = \
+ doc/guix.1 \
+ $(sub_commands_mans)
+
+# Man pages are generated using GNU help2man.
+gen_man = \
+ LANGUAGE= $(top_builddir)/pre-inst-env $(HELP2MAN) \
+ $(HELP2MANFLAGS)
+
+HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
+
+# Note: Do not depend on 'scripts/guix' since that would trigger a rebuild
+# even for people building from a tarball.
+doc/guix.1: $(sub_commands_mans)
+ -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
+
+# Note: The dependency on $(GOBJECTS) is meant to force these docs to be made
+# only after all Guile modules have been compiled. The 'case' ensures the man
+# pages are only generated if the corresponding script source has been
+# changed.
+doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
+ -@case '$?' in \
+ *$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \
+ $(gen_man) --output="$@" "guix $*";; \
+ *) : ;; \
+ esac
+
+if BUILD_DAEMON
+
+dist_man1_MANS += doc/guix-daemon.1
+
+# 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
+ -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
+
+endif