%% Adam Stein <[EMAIL PROTECTED]> writes:
as> There didn't seem to be a good place to send suggestions, so I'm
as> sending it here (I guess I could consider missing functionality a
as> bug :-{)
It's not a bug unless said functionality is required by some standard
that GNU make supports :). There is no standard basis for .KEEP_STATE.
as> The Sun version of make uses a special target called
as> ".KEEP_STATE:" to automatically keep dependency information. This
as> is useful so that when I change an include file (for example), all
as> those files that include it will get recompiled. I couldn't find
as> an equivalent function in GNU Make.
You can easily provide your own dependency tracking implementation in
GNU make which is even more flexible than that provided by KEEP_STATE;
KEEP_STATE gives you dependency tracking for whatever setup the writers
of make decided to provide (i.e., it will use cpp to get dependencies
for C files, but what about Java? C++? Fortran? Pascal? TeX? Etc.)
For a discussion of a very sophisticated dependency tracking
implementation using GNU make, see:
http://www.ultranet.com/~pauld/gmake/autodep.html
I feel it's unlikely that GNU make will ever include any builtin
dependency tracking info, since any attempt to do so would be (a) a
configuration nightmare, given the different hosts GNU make runs on,
(b) restricted to a small subset of the potential needs for dependency
info, and (c) no better than what you can do yourself using the above
method.
However, there is one element of KEEP_STATE which can't be emulated with
GNU make now, and that's how it stores a copy of the command line and
rebuilds targets when the command line changes (if, for example, you
added a new -I option, or new -D option, or turned on -g or -O, or
whatever).
This functionality is on the TODO list.
There is a partially-complete implementation of that part of .KEEP_STATE
floating around, but it's hard to say when it will be finished and
integrated; there are other things of higher importance on the list
for me right now.
Contributions always welcome, of course! :). Let me know if you want to
try this, so we can get the legal details straight.
Thanks.
--
-------------------------------------------------------------------------------
Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at:
http://www.gnu.org http://www.ultranet.com/~pauld/gmake/
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist