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: Mathieu Lirzin
Subject: Re: [PATCH 06/13] build: Generate man pages after compiling guile objects.
Date: Tue, 26 Jan 2016 21:08:36 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

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?

--
Mathieu Lirzin



reply via email to

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