help-make
[Top][All Lists]
Advanced

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

Re: GMAKE 3.81 vs GMAKE 4.2


From: nikhil jain
Subject: Re: GMAKE 3.81 vs GMAKE 4.2
Date: Sat, 5 Oct 2019 19:55:47 +0530

Thank you for explanation.
Actually these are legacy makefiles. Those who created them might not be in
the company even.

But still, we have asked R&D to find out what exactly makefile is doing and
why it is dependent on the sequence and how to avoid it.

Also, I have asked the user to create a minimal example of how to use
verbose option and provide a reproducible case.

Just for an update - I have moved to 3.81 for now with a blind guess that
all will work fine in 3.81 and nothing will break.

Can you tell when the make 4.3 will be official ?

I have to move to 4.3 after all the regression testing on the binaries
generated by the build.

If I share a makefile then can you debug that ?


On Sat, 5 Oct 2019, 19:35 Paul Smith, <address@hidden> wrote:

> On Fri, 2019-10-04 at 07:36 +0530, nikhil jain wrote:
> > So it looks like the wild card issue as you mention.
>
> If that is indeed the case, it means your build system is relying on
> the sorted order of some files retrieved by wildcard in order to build
> properly.
>
> That's a problem: it makes your build system very brittle.  What if new
> files are added, or existing files are renamed, which break things
> again?  I recommend that you make an attempt to discover why this is
> the case and use a specific list of files with a well-known order
> (probably with a comment or two in the makefile explaining why the
> ordering requirement exists) rather than relying on the order returned
> by wildcard.
>
> You can test this by going through your makefiles and replacing
> instances of $(wildcard ...) with $(sort $(wildcard ...)) then trying
> to build and test with GNU make 3.82 or 4.2.1 etc. and determine when
> it starts working.
>
> > I use command line option VERBOSE to enable and disable rule display on
> > screen while building. I usually check if I pass verbose as false then I
> > append @ to the command so make doesn't display it.
> >
> > But when I pass true, still it doesn't display the command.
>
> Unfortunately these abstract explanations of problems don't allow us to
> help.
>
> Given the above description, the way *I* would implement it works the
> same in GNU make 3.81 and 4.2.1 and all other versions of GNU make.
>
> We need to know exactly how you "use command line option VERBOSE",
> exactly how you "check if verbose [is] false", and exactly how you
> "append @ to the command".
>
> Please construct a small reproducible case you can post here which
> shows the problem, and show us the make command line you invoked, the
> output you got, and explain how that's different from the output you
> wanted.  Then we can help.
>
> Cheers!
>
>


reply via email to

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