Hi Paul,
Thank you for your reply. What you tell would explain the behavior. Is there a way to deactivate those caches, or some other way to guarantee that make checks a target's existence right before it executes its rule?
Regards,
Simon.
| "Paul D. Smith" <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED] 01/08/05 12:01 AM
|
|
%% "Simon De Groot" <[EMAIL PROTECTED]> writes:
sdg> I have a phony target that creates multiple files. On top of
sdg> that, I defined a pattern rule for that type of file. Both the
sdg> phony target and the individual targets are in the dependency
sdg> tree of the 'all' target. Once I run gmake --debug=a, I can see
sdg> that it first makes the phony target, creating all the files,
sdg> which from then on exist. Afterwards, the dependency requires
sdg> these files individually. I would expect that by then, these will
sdg> not be remade, since the phony target has created them
sdg> successfully. But gmake's debug log reports that each individual
sdg> file does not exist, and makes them individually.
It sounds like an issue with make's directory cache. Make internally
caches the contents of directories and updates its cache information
based on the targets that your makefile says exist.
So if a rule in your makefile creates a file that is not listed as a
target, make's internal cache doesn't know about it because your rule
didn't list it as a target that would be created by running that
command.
--
-------------------------------------------------------------------------------
Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at:
http://www.gnu.org http://make.paulandlesley.org
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make
_______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
