From: Eric Bavier <ericbavier@openmailbox.org>
To: Mathieu Lirzin <mthl@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH 06/13] build: Generate man pages after compiling guile objects.
Date: Thu, 28 Jan 2016 18:27:33 -0600 [thread overview]
Message-ID: <20160128182733.5291643b@openmailbox.org> (raw)
In-Reply-To: <87k2mtk5ak.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 715 bytes --]
On Thu, 28 Jan 2016 18:00:35 +0100
Mathieu Lirzin <mthl@gnu.org> wrote:
> OTOH I must admit that for maintainability reasons I would prefer
> avoiding complexity in Makefiles as much as possible. This means
> using Automake's abstract concepts as much as possible, having a
> simple dependency graph on top of that, and put things that don't fit
> well in this scheme in individual "build-aux/" scripts. For that
> reason I still prefer the embed help2man solution. but otherwise it
> looks nice. :)
I sympathize with the concerns for maintainability. In this case, it
seems to me that a few lines of make/shell would be preferable to 20k
lines of perl. Perhaps the simpler attached patch is better?
`~Eric
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-build-Generate-man-pages-after-compiling-guile-objec.patch --]
[-- Type: text/x-patch, Size: 2090 bytes --]
From 4f369cb6d49cbb6620a0cae117107d6d5e72edc5 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@member.fsf.org>
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
\f
# 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)
+ -@case '$$?' 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
next prev parent reply other threads:[~2016-01-29 5:23 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-24 20:19 [PATCH 00/13] New syntax 'package@version' and compilation improvements Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 01/13] tests: Use 'dummy-origin' for lint tests when possible Mathieu Lirzin
2016-01-26 15:58 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 02/13] lint: Remove an unneeded clause in 'check-patch-file-names' Mathieu Lirzin
2016-01-26 16:00 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 03/13] lint: Rewrite 'check-patch-file-names' Mathieu Lirzin
2016-01-26 16:01 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 04/13] utils: Use '@' for separating package names and version numbers Mathieu Lirzin
2016-01-25 11:37 ` Alex Kost
2016-01-25 20:56 ` Mathieu Lirzin
2016-01-26 16:22 ` Ludovic Courtès
2016-01-26 20:52 ` Mathieu Lirzin
2016-01-26 21:08 ` Ludovic Courtès
2016-02-19 20:49 ` Mathieu Lirzin
2016-02-23 11:11 ` Ludovic Courtès
2016-02-29 0:28 ` Mathieu Lirzin
2016-02-29 16:00 ` Ludovic Courtès
2016-03-02 21:35 ` Mathieu Lirzin
2016-03-05 1:28 ` Nils Gillmann
2016-03-05 9:24 ` Alex Kost
2016-03-05 9:36 ` Mathieu Lirzin
2016-03-03 10:29 ` Alex Kost
2016-03-03 16:55 ` Ludovic Courtès
2016-03-04 10:19 ` Alex Kost
2016-03-04 23:03 ` Mathieu Lirzin
2016-03-04 23:25 ` Ludovic Courtès
2016-03-05 1:08 ` Mathieu Lirzin
2016-03-05 9:16 ` Alex Kost
2016-01-25 14:04 ` Thompson, David
2016-01-25 21:41 ` Mathieu Lirzin
2016-01-25 23:33 ` Alex Kost
2016-01-26 17:57 ` Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 05/13] packages: Use '@' in package record printers Mathieu Lirzin
2016-01-26 16:22 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 06/13] build: Generate man pages after compiling guile objects Mathieu Lirzin
2016-01-26 16:52 ` Ludovic Courtès
2016-01-26 20:08 ` Mathieu Lirzin
2016-01-28 2:37 ` Eric Bavier
2016-01-28 15:44 ` Mathieu Lirzin
2016-01-28 15:59 ` Eric Bavier
2016-01-28 17:00 ` Mathieu Lirzin
2016-01-29 0:27 ` Eric Bavier [this message]
2016-01-29 16:17 ` Mathieu Lirzin
2016-01-29 16:46 ` Eric Bavier
2016-01-29 22:56 ` Mathieu Lirzin
2016-01-31 9:17 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 07/13] build: Add 'DL' silent rule Mathieu Lirzin
2016-01-26 16:28 ` Ludovic Courtès
2016-01-26 17:44 ` Mathieu Lirzin
2016-01-26 19:22 ` Taylan Ulrich Bayırlı/Kammer
2016-01-26 21:06 ` Ludovic Courtès
2016-01-26 21:14 ` Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 08/13] build: Add 'DOT' " Mathieu Lirzin
2016-01-26 16:28 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 09/13] build: Add 'EMACS' " Mathieu Lirzin
2016-01-26 16:28 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 10/13] build: Add 'HELP2MAN' " Mathieu Lirzin
2016-01-26 16:29 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 11/13] build: Delete emacs/guix-autoloads.el when 'make clean' Mathieu Lirzin
2016-01-26 16:33 ` Ludovic Courtès
2016-01-26 22:55 ` Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 12/13] build: Use 'GEN' and 'at' silent rules Mathieu Lirzin
2016-01-26 16:34 ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 13/13] Update .gitignore Mathieu Lirzin
2016-01-26 16:34 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160128182733.5291643b@openmailbox.org \
--to=ericbavier@openmailbox.org \
--cc=guix-devel@gnu.org \
--cc=mthl@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).