%% 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

Reply via email to