|
From: | Noel Yap |
Subject: | Re: non-recursive build question |
Date: | Wed, 28 Apr 2004 07:12:32 -0400 |
User-agent: | Mozilla Thunderbird 0.5 (Windows/20040212) |
Paul D. Smith wrote:
%% Sandy Currier <address@hidden> writes: sc> Actually, though the primary point is to not have targets that sc> depend on foo.exp rebuild when it is not physically changed, the sc> secondary point IS to touch the foo.exp target. By touching it sc> when it is rebuilt, then the next time that make is run, if none sc> of the $(ALL_FOO_OFILES) have changed, then the neither foo.exp or sc> foo.so is rebuilt. Well, you can't have it both ways: either the target is updated, in which case things that depend on the target are updated, or it's not updated, in which case it will be re-assessed in relation to its prerequisites the next time make is run.
OTOH, you can have a different definition of "updated". Order rules consider something "updated" iff that something exists.
Now create_export_list.pl will only be invoked when some OFILE actually changes, and foo.exp will only be updated when the export list has changed, but you don't pay the cost of updating the export list every time you only pay the cost of the comparison.
Since symbols can be added or removed each time an object file is rebuilt, unless make can look into the object files to see if this has happened, the .exp will have to be rebuilt each time the object files are rebuilt. Even if make could look into the object files for symbol list changes, this must have a similar cost as creating the .exp anyway.
Noel
[Prev in Thread] | Current Thread | [Next in Thread] |