>>>>> "DJ" == DJ Delorie <[EMAIL PROTECTED]> writes:

>> probably the sanest thing is to go with the automake-like approach of
>> one .d file per .c file, which then can be annotated without having to
>> write logic to parse a big dependency file and update it in place.

DJ> The problem with .d files is that there's no good automatic way to
DJ> deal with headers that get renamed or deleted; the dependency on the
DJ> old file is listed but there's no way to make that file.

The automake approach is to emit a dummy target for each header.
This avoids the deleted header file problem.

Automake also doesn't do a separate "make depend" step.  Dependencies
are computed as a side effect of compilation.  There is a wrapper
script that handles most kinds of compilers (with a fallback to an
old-style makedepend), but if you are building with gcc this is
bypassed in favor of a fast track in the Makefile.

Computed headers are dealt with somewhat clumsily in automake.  As a
user you specify "BUILT_SOURCES", and then these are built by 'all'
before anything else is done.  Ordinary dependencies do suffice here,
they just aren't the style automake users are encouraged to use; in
gcc you could just tack them on to the end of a "%.o: %.c" rule.

Tom

Reply via email to