guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 06/13] build: Generate man pages after compiling guile object


From: Eric Bavier
Subject: Re: [PATCH 06/13] build: Generate man pages after compiling guile objects.
Date: Wed, 27 Jan 2016 20:37:42 -0600

On Tue, 26 Jan 2016 21:08:36 +0100
Mathieu Lirzin <address@hidden> wrote:

> address@hidden (Ludovic Courtès) writes:
> 
> > Mathieu Lirzin <address@hidden> skribis:
> >
> >> * configure.ac (BUILD_FROM_GIT): New Automake conditional.
> >> * doc.am (SUBCOMMANDS): Delete variable.
> >> (dist_man1_MANS): List all subcommands man pages.
> >> (doc/guix.1): Build only if BUILD_FROM_GIT.  Depend on 'scripts/guix'
> >> instead of all subcommands.
> >> [BUILD_DAEMON] (doc/guix-daemon): Likewise.  Replace the
> >> 'nix/nix-daemon/guix-daemon.cc' prerequisite with 'guix-daemon'.
> >> [BUILD_FROM_GIT] (gen_man): New variable.
> >> [BUILD_FROM_GIT] (doc/guix-%.1): New target.
> >> (CLEANFILES) [BUILD_FROM_GIT]: Add $(dist_man1_MANS).
> >
> > I like the speedup, but not the ‘BUILD_FROM_GIT’ approach.  :-)
> > It reminds me of maintainer-mode and all its warts (info "(automake)
> > maintainer-mode").
> 
> The BUILD_FROM_GIT is inspired by what is done for GNU Hello.  ;)
> However I don't have a strong opinion on this.
> 
> > Namely, I think it’s best to have the help2man rule always triggered
> > whenever the corresponding .scm file is newer, rather than have it
> > triggered or not based on a guess of what the user wants/can do.
> 
> OK.
> 
> > Having said that, I’m not sure what to do.  Commit 0af3f404 reverted the
> > original approach, which was to depend on .go files (and obviously
> > wouldn’t work as we want.)
> >
> > So we want to delay the build of man pages without making the dependency
> > on build products explicit.  Hmm, not sure what can be done.
> 
> I have tried to add $(GOBJECTS) to BUILT_SOURCES and let the man pages
> prerequisites like in 0af3f404.  The problem was that the build didn't
> fully took advantage of possible parallelisms because everything had to
> wait for $(GOBJECTS) to complete before compiling anything else, and the
> modules are loaded using only one thread.
> 
> Another approach is to embed ‘help2man’ (which is what Coreutils is
> doing), so we can let the man pages depend on .go files.  This seems
> reasonable to me even if it means adding 20K of Perl in the repo.  ;)
> 
> WDYT?

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.

`~Eric

Attachment: 0001-doc-Generate-manpages-after-.go-are-compiled.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]