%% Fabio Alemagna <[EMAIL PROTECTED]> writes: fa> I know that, I've thought of it myself, but it just doesn't work fa> for autogenerated header files: say foo.o depends on foo.h, but fa> foo.h is autogenerated; now, make won't know about foo.h until fa> next time it's invoked, because the .d file doesn't exist the fa> first time it's invoked, and thus the foo.h rule won't be called fa> until the 2nd time I run make, which is really not what I want.
The autogeneration only works for leaf prerequisites, it's definitely true. Any prerequisite which is "internal" in the dependency graph (that is, which is a built artifact instead of a source file) must be declared explicitly. In this case, you'd need to put foo.h into your makefile, but assuming you didn't have that many autogenerated files this wouldn't be that bad. fa> The other solution that I see would be for make to provide means fa> other than timestamps to check whether a target needs to be fa> rebuilt. This is definitely on the todo list: as systems get faster it's more and more infeasible to rely on timestamps. Also, for some kinds of CM systems (like ClearCase dynamic views for example) timestamps are virtually useless, and hence GNU make is virtually useless. However, changing GNU make from stateless to stateful in a robust and portable manner needs a lot of thought. -- ------------------------------------------------------------------------------- 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 _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make