From mboxrd@z Thu Jan 1 00:00:00 1970 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 Message-ID: <87zivs2jej.fsf@gnu.org> References: <1453666771-16869-1-git-send-email-mthl@gnu.org> <1453666771-16869-7-git-send-email-mthl@gnu.org> <87d1somgfd.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48062) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aO9ux-0000an-Pp for guix-devel@gnu.org; Tue, 26 Jan 2016 15:08:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aO9uw-0003XH-Nw for guix-devel@gnu.org; Tue, 26 Jan 2016 15:08:47 -0500 In-Reply-To: <87d1somgfd.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 26 Jan 2016 17:52:38 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Mathieu Lirzin 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 =E2=80=98BUILD_FROM_GIT=E2=80=99 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=E2=80=99s best to have the help2man rule always trigge= red > 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=E2=80=99m not sure what to do. Commit 0af3f404 rever= ted the > original approach, which was to depend on .go files (and obviously > wouldn=E2=80=99t 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 =E2=80=98help2man=E2=80=99 (which is what Core= utils 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