From 03d0e2d2b9f9cc3be8e871842c11df9453e903bd Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Thu, 21 Apr 2016 18:07:52 +0200 Subject: 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. --- doc/local.mk | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 doc/local.mk (limited to 'doc/local.mk') 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 +# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +# Copyright © 2013 Andreas Enge +# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer +# Copyright © 2016 Mathieu Lirzin +# +# 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 . + +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 -- cgit v1.2.3