True enough, as far as it goes. A real solution to this would have to be
combined with a move away from mtime as the only mechanism for signaling
freshness of a target. (A solution involving only recipe comparison would
also have to know to touch the target.)

Kyle

On Tue, Jul 18, 2017 at 5:42 PM, David Boyce <david.s.bo...@gmail.com>
wrote:

> Someone needs to point out that this is entirely solvable within gnu make.
> Many recipes have been published; one is at https://www.cmcrossroads.
> com/article/rebuilding-when-cppflags-changes. The Linux kernel makefile
> structure has a nice implementation of this too. It might still be
> preferable for it to be handled entirely by the tool, but it can be done at
> the makefile level.
>
> On Tue, Jul 18, 2017 at 7:07 AM, Kyle Rose <kr...@krose.org> wrote:
>
>> On Tue, Jul 18, 2017 at 4:00 PM, Edward Welbourne <edward.welbou...@qt.io
>> > wrote:
>>
>>> Henrik Carlqvist (18 July 2017 15:46)
>>> > The quick and easy way to accomplish this today is of course to also
>>> > add the Makefile to the prerequisites of targets. If you don't want
>>> > every target to be rebuilt when only one rule has changed it is also
>>> > possible to split the Makefile up into several files with only one
>>> > rule in each file.
>>>
>>> well, rules also depend on variables they evaluate (LDFLAGS, etc.), so
>>> you need to modularise the variable-setting and make all targets whose
>>> rule exercises a variable also depend on the file in which that
>>> variable's value gets set.  Even that doesn't save you when I pass some
>>> variable-override on make's command-line.
>>>
>>> OTOH, hashing the whole command-line may be over-kill; if I change some
>>> tool's verbosity, that shouldn't change the generated file, so shouldn't
>>> force a rebuild.
>>
>>
>> This depends entirely on the semantics of the command in question.
>> There's no reasonable way for make to know what is semantically relevant
>> and what isn't.
>>
>> I agree with the general idea expressed in the top of the thread, but by
>> contrast think it *should* be by comparing generated recipes. Anything
>> other than syntactic changes can be optimized by mechanisms like ccache.
>>
>> Kyle
>>
>>
>> _______________________________________________
>> Bug-make mailing list
>> Bug-make@gnu.org
>> https://lists.gnu.org/mailman/listinfo/bug-make
>>
>>
>
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to