help-make
[Top][All Lists]
Advanced

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

RE: auto-dep cannot possibly work?


From: Mark Galeck (CW)
Subject: RE: auto-dep cannot possibly work?
Date: Tue, 17 Nov 2009 09:49:19 -0800

>In fact, the extra $(wildcard ...) statements have no impact, for good
or ill, on the remove/rename issue.  Unless I've confused something
again.

OK, the explanation is not for you Paul - you are the expert :) just a detailed 
explanation for other newbies like myself who might stumble upon this.  

So we have this auxiliary dependency rule that may look like this

include/foobar.h:  $(wildcard include1/foobar.h include2/foobar.h ...)

Well, as for the impact on the remove/rename of include/foobar.h, it's like 
this.  If $(wildcard ...) is empty, then this is the old solution to the 
remove/rename issue.  

If it is not empty, and we removed the target foobar.h, then make sees a 
non-existent target, with existing prerequisites, and neither for prerequisites 
nor the target, there are any rules.  That means make will check the 
prerequisites, realize there is nothing to do there, and consider the target 
"updated" - that is because make only checks whether any target is up-to-date 
before processing it, not after - afterwards, make does not even check whether 
the target in fact came to exist.  

If it is not empty and we did not remove the target foobar.h, then we have 
existing target and existing prerequisites and no commands for either, and make 
may or may not consider the target up to date, but it does not matter because 
it won't do any commands to update it, and again thereafter will consider it 
"up to date".   

(I checked by hand that this is in fact how it works in all these cases).

Mark




reply via email to

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