aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2016-04-21 18:07:52 +0200
committerMathieu Lirzin <mthl@gnu.org>2016-04-21 18:47:50 +0200
commit03d0e2d2b9f9cc3be8e871842c11df9453e903bd (patch)
treea7cf97b70bf769217609beff73ec0c073d3f57f8 /doc
parentdc9bdb1e2730589ff7c2ec5f1e601f4262eac9d6 (diff)
downloadguix-03d0e2d2b9f9cc3be8e871842c11df9453e903bd.tar
guix-03d0e2d2b9f9cc3be8e871842c11df9453e903bd.tar.gz
build: Move 'Makefile' fragments to subdirectories.
This follows a convention used by some other GNU packages like Autoconf, Bison, Coreutils, and Gnulib. * doc.am: Rename to ... * doc/local.mk: ... this. * emacs.am: Rename to ... * emacs/local.mk: ... this. * gnu-system.am: Rename to ... * gnu/local.mk: ... this. * daemon.am: Rename to ... * nix/local.mk: ... this. * Makefile.am: Adapt to them. * doc/guix.texi (Porting to a New Platform): Adapt documentation. * guix/config.scm.in (%state-directory, %config-directory): Adapt comments. * emacs/guix-config.el.in (guix-config-state-directory): Likewise.
Diffstat (limited to 'doc')
-rw-r--r--doc/guix.texi2
-rw-r--r--doc/local.mk157
2 files changed, 158 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 859db2be12..ab07d1066e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -11286,7 +11286,7 @@ to be updated to refer to these binaries on the target platform. That
is, the hashes and URLs of the bootstrap tarballs for the new platform
must be added alongside those of the currently supported platforms. The
bootstrap Guile tarball is treated specially: it is expected to be
-available locally, and @file{gnu-system.am} has rules do download it for
+available locally, and @file{gnu/local.mk} has rules do download it for
the supported architectures; a rule for the new platform must be added
as well.
diff --git a/doc/local.mk b/doc/local.mk
new file mode 100644
index 0000000000..b9f07c3590
--- /dev/null
+++ b/doc/local.mk
@@ -0,0 +1,157 @@
+# GNU Guix --- Functional package management for GNU
+# 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.
+#
+# GNU Guix is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or (at
+# your option) any later version.
+#
+# GNU Guix is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# 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 \
+ $(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 \
+ doc/os-config-desktop.texi \
+ doc/os-config-lightweight-desktop.texi
+
+# Bundle this file so that makeinfo finds it in out-of-source-tree builds.
+BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI)
+EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI)
+MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI)
+
+doc/os-config-%.texi: gnu/system/examples/%.tmpl
+ $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \
+ cp "$<" "$@"
+
+infoimagedir = $(infodir)/images
+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_OPTIONS = \
+ -Gratio=.9 -Gnodesep=.005 -Granksep=.00005 \
+ -Nfontsize=9 -Nheight=.1 -Nwidth=.1
+
+.dot.png:
+ $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
+ mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+
+.dot.pdf:
+ $(AM_V_DOT)$(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
+ mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+
+.dot.eps:
+ $(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: $(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. ##
+## ----------- ##
+
+# The man pages are generated using GNU Help2man. In makefiles rules they
+# depend not on the binary, but on the source files. This usage allows a
+# manual page to be generated by the maintainer and included in the
+# distribution without requiring the end-user to have 'help2man' installed.
+# They are built in $(srcdir) like info manuals.
+
+sub_commands_mans = \
+ $(srcdir)/doc/guix-archive.1 \
+ $(srcdir)/doc/guix-build.1 \
+ $(srcdir)/doc/guix-challenge.1 \
+ $(srcdir)/doc/guix-download.1 \
+ $(srcdir)/doc/guix-edit.1 \
+ $(srcdir)/doc/guix-environment.1 \
+ $(srcdir)/doc/guix-gc.1 \
+ $(srcdir)/doc/guix-hash.1 \
+ $(srcdir)/doc/guix-import.1 \
+ $(srcdir)/doc/guix-lint.1 \
+ $(srcdir)/doc/guix-package.1 \
+ $(srcdir)/doc/guix-publish.1 \
+ $(srcdir)/doc/guix-pull.1 \
+ $(srcdir)/doc/guix-refresh.1 \
+ $(srcdir)/doc/guix-size.1 \
+ $(srcdir)/doc/guix-system.1
+
+dist_man1_MANS = \
+ $(srcdir)/doc/guix.1 \
+ $(sub_commands_mans)
+
+gen_man = \
+ LANGUAGE= $(top_builddir)/pre-inst-env $(HELP2MAN) \
+ $(HELP2MANFLAGS)
+
+HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
+
+$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans)
+ -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
+
+# The 'case' ensures the man pages are only generated if the corresponding
+# source script (the first prerequisite) has been changed. The $(GOBJECTS)
+# prerequisite is solely meant to force these docs to be made only after all
+# Guile modules have been compiled.
+$(srcdir)/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 += $(srcdir)/doc/guix-daemon.1
+
+$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
+ -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
+
+endif