summary refs log tree commit diff
path: root/doc.am
diff options
context:
space:
mode:
Diffstat (limited to 'doc.am')
-rw-r--r--doc.am61
1 files changed, 31 insertions, 30 deletions
diff --git a/doc.am b/doc.am
index 127029c1ca..8356ffa2dd 100644
--- a/doc.am
+++ b/doc.am
@@ -98,45 +98,48 @@ 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 =				\
-  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
+  $(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 =				\
-  doc/guix.1					\
+  $(srcdir)/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)
+$(srcdir)/doc/guix.1: scripts/guix.in $(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)
+# 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 $*";; \
@@ -145,11 +148,9 @@ doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
 
 if BUILD_DAEMON
 
-dist_man1_MANS += doc/guix-daemon.1
+dist_man1_MANS += $(srcdir)/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
+$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
 	-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
 
 endif