From 4f369cb6d49cbb6620a0cae117107d6d5e72edc5 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 27 Jan 2016 20:31:04 -0600 Subject: [PATCH] build: Generate man pages after compiling guile objects. * doc.am (SUBCOMMAND_MANS): New variable. (subcommand-manual-target): Add dependency on SUBCOMMAND_MANS. Run help2man only if script input is changed. --- doc.am | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/doc.am b/doc.am index ad59aa5..e009a24 100644 --- a/doc.am +++ b/doc.am @@ -94,7 +94,7 @@ dvi-local: ps-local # Manual pages. -doc/guix.1: $(SUBCOMMANDS:%=guix/scripts/%.scm) +doc/guix.1: $(SUBCOMMANDS:%=guix/scripts/%.scm) $(SUBCOMMAND_MANS) -$(AM_V_HELP2MAN)LANGUAGE= $(top_builddir)/pre-inst-env \ $(HELP2MAN) --output="$@" guix @@ -106,9 +106,18 @@ doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc define subcommand-manual-target -doc/guix-$(1).1: guix/scripts/$(1).scm - -$$(AM_V_HELP2MAN)LANGUAGE= $(top_builddir)/pre-inst-env \ - $(HELP2MAN) --output="$$@" "guix $(1)" +# Note: The dependency on $(GOBJECTS) is to force these docs to be made only +# after all guile modules have been compiled. The 'case' ensures the manpages +# are only generated if the corresponding script source has been changed. +doc/guix-$(1).1: guix/scripts/$(1).scm $(GOBJECTS) + address@hidden '$$?' in \ + *$$<*) \ + cmd='LANGUAGE= $(top_builddir)/pre-inst-env \ + $(HELP2MAN) --output="$$@" "guix $(1)"'; \ + if $(AM_V_P); then echo "$$$$cmd"; else echo " HELP2MAN" $$@; fi; \ + eval "$$$$cmd" ;; \ + *) : ;; \ + esac endef @@ -129,13 +138,14 @@ SUBCOMMANDS := \ refresh \ size \ system +SUBCOMMAND_MANS := $(SUBCOMMANDS:%=doc/guix-%.1) $(eval $(foreach subcommand,$(SUBCOMMANDS), \ $(call subcommand-manual-target,$(subcommand)))) dist_man1_MANS = \ doc/guix.1 \ - $(SUBCOMMANDS:%=doc/guix-%.1) + $(SUBCOMMAND_MANS) if BUILD_DAEMON -- 2.5.0