all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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 09:59:43 -0600	[thread overview]
Message-ID: <7bfbfb841466c6889effbd21d089d616@openmailbox.org> (raw)
In-Reply-To: <87oac5k8sp.fsf@gnu.org>

On 2016-01-28 09:44, Mathieu Lirzin wrote:
> Hi Eric,
> 
> Eric Bavier <ericbavier@openmailbox.org> writes:
> 
>> Here's my rough first take at this.  It uses the status 77 convention
>> to update a sentinel file and selectively run help2man.
>> 
>> I realize the silent rule output isn't yet polished.
> 
> I have pushed the reviewed patches.  So now it is polished. :)
> 
>> From 038645a3d14cd10fdb37f94703e463d8f7a3241a 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] doc: Generate manpages after .go are compiled.
>> 
>> * build-aux/compile-all.scm: Exit 77 if no files to compile.
>> * Makefile.am (make-go): Rename target to make-go.stamp.  Update if 
>> any
>>   files were successfully compiled.
>> * doc.am (subcommand-manual-target): Add dependency on make-go.stamp.
>>   Run help2man only if script input is changed.
>> ---
>>  Makefile.am               | 12 +++++++++---
>>  build-aux/compile-all.scm |  1 +
>>  doc.am                    | 15 ++++++++++++---
>>  3 files changed, 22 insertions(+), 6 deletions(-)
>> 
> [...]
>> diff --git a/doc.am b/doc.am
>> index f15efcc..b3996d1 100644
>> --- a/doc.am
>> +++ b/doc.am
>> @@ -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
>> -	-LANGUAGE= $(top_builddir)/pre-inst-env		\
>> -	  $(HELP2MAN) --output="$$@" "guix $(1)"
>> +# Note: The dependency on make-go.stamp is to force these docs to be 
>> made only
>> +# after all guile modules have been compiled, so that they are not 
>> compiled
>> +# during this rule.  But we only want to actually generate the 
>> manpages if the
>> +# corresponding script source has been changed.
>> +doc/guix-$(1).1: guix/scripts/$(1).scm make-go.stamp
>> +	-$(AM_V_at)case '$$?' in \
>> +	  *$$<*) \
>> +	    echo "  GEN     $$@"; \
>> +	    LANGUAGE= $(top_builddir)/pre-inst-env \
>> +	    $(HELP2MAN) --output="$$@" "guix $(1)" ;; \
>> +	  *) : ;; \
>> +	esac
> 
> IIUC, there is a problem with adding ‘make-go.stamp’ as a prerequisite
> here.  Since building ‘.go’ files from the tarball will trigger the
> rebuild of man pages.

That's what the case statement is for, it skips the invocation of 
help2man if the script source was not among the dependents updated.  A 
'touch' could be run on $@ in that case, rather than just exiting, so 
that the rule in not run repeatedly.

-- 
`~Eric

  reply	other threads:[~2016-01-28 15:59 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 [this message]
2016-01-28 17:00             ` Mathieu Lirzin
2016-01-29  0:27               ` Eric Bavier
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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7bfbfb841466c6889effbd21d089d616@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 external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.