GNU bug report logs - #31157
Advice for help2man does not work for parallel builds

Previous Next

Package: automake;

Reported by: Reuben Thomas <rrt <at> sc3d.org>

Date: Sat, 14 Apr 2018 23:50:02 UTC

Severity: minor

Full log


Message #13 received at 31157 <at> debbugs.gnu.org (full text, mbox):

From: Peter Johansson <trojkan <at> gmail.com>
To: Mathieu Lirzin <mthl <at> gnu.org>, Reuben Thomas <rrt <at> sc3d.org>
Cc: 31157 <at> debbugs.gnu.org
Subject: Re: bug#31157: Advice for help2man does not work for parallel builds
Date: Sun, 22 Apr 2018 09:56:28 +1000
Hi Ruben and Mathieu,


On 4/22/2018 1:13 AM, Mathieu Lirzin wrote:
> Hello Reuben,
>
> Reuben Thomas <rrt <at> sc3d.org> writes:
>
>> In the manual, we are given the following pattern for using help2man
>> without breaking make distcheck:
>>
>> foo.1: foo.c $(top_srcdir)/configure.ac
>> $(MAKE) $(AM_MAKEFLAGS) foo$(EXEEXT)
>> help2man --output=foo.1 ./foo$(EXEEXT)
>>
>> The problem is that with make -j this can result in two attempts to
>> make a library in parallel (suppose that we have:
>>
>> foo_LDADD = libfoo.la
>> lib_LTLIBRARIES = libfoo.la
>>
>> ). This can fail, and in any case is wasteful.
> Have you identified the reason why this can fail?  because

One problem is that the rule for foo.1 can be triggered before 
foo.$(EXEEXT) exists and the rule needs foo.$(EXEEXT) or help2man will 
fail. In a -j1 build this is never a problem as binaries are built 
before man pages.

When the 'missing' script changed behaviour in Automake 1.13 (and became 
useless imvho), we changed the rule in one project so foo.1 depended on 
foo.$(EXEEXT) but not if we are 1) building from a tarball and 2) 
foo.$(EXEEXT) exists.

http://dev.thep.lu.se/svndigest/browser/trunk/man/Makefile.am


Cheers,
Peter




This bug report was last modified 7 years and 55 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.