automake
[Top][All Lists]
Advanced

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

Re: Parallel build sometimes resulting in "fatal error: config.h: No suc


From: Simon Sobisch
Subject: Re: Parallel build sometimes resulting in "fatal error: config.h: No such file or directory"
Date: Thu, 19 Oct 2017 21:54:36 +0200
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

This worked like a charm. While the full path is needed later (when
invoking help2man) it should not be used as prerequisite.

Thank you very much!
Simon

Am 16.10.2017 um 22:19 schrieb Nick Bowler:
> Hi Simon,
> 
> On 10/16/17, Simon Sobisch <address@hidden> wrote:
> [...]
>> Running without `make -j` always work but using parallel builds sometime
>> break with the mentioned error.
> [...]
>> ~~~
>> gcc -O2 -pipe -finline-functions -fsigned-char -Wall -Wwrite-strings
>> -Wmissing-prototypes -Wno-format-y2k -U_FORTIFY_SOURCE
>> -Wl,-z,relro,-z,now,-O1  /home/simon/gnucobol/cobc/../cobc/cobc.c   -o
>> ../cobc/cobc
>> /home/simon/gnucobol/cobc/../cobc/cobc.c:26:10: fatal error: config.h:
>> No such file or directory
>>  #include "config.h"
>>           ^~~~~~~~~~
>> compilation terminated.
> 
> I took a quick look at your project.  The problem is likely this bit
> from cobc/Makefile.am:
> 
>   COBC = $(top_builddir)/cobc/cobc$(EXEEXT)
> 
>   cobc.1: [...] $(COBC)
> 
> The problem is that this COBC macro does not match the Automake generated
> target name.  When it gets pulled in as a prerequisite for cobc.1 and the
> file does not already exist, the built-in GNU make rule applies, which
> produces cobc from cobc.c.
> 
> This is the wrong rule, so the compilation fails.
> 
> The prerequisites in make rules typically should match the target names
> exactly.  In this case, it should be:
> 
>   cobc.1: [...] cobc$(EXEEXT)
> 
> Hope that helps,
>   Nick
> 



reply via email to

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