> [Mk] only knows about the rules you give it. It does not
> understand the real dependencies in your software.
> Also, because of this you tend to give it general rules
> which are not always right.

I thirk this might be a good place to mention that I'm
working on a build tool which, in effect, extends and
modernizes the set of pre-written rules the build tool
knows about.  A user can add to the library by writing
a small shell script, which processes a given file.
The type of files which the system generates from
these shell scripts includes the list of dependencies
for a particular file, customized to that file.

This gives an opportunity to automate very fine-
grained dependency detection, written in a general
way and applied to find the dependencies for a
single file.

Of course, the same command (adddep) used to
add dependencies as above can also add them
manually, or add many dependencies found at
once for many files.

Of interest to this group, I wrote the tool in
Inferno's shell sh, and it uses /env to track
dependencies on shell variables, and <{} to
parallelize building dependencies.  I would
appreciate recommendations for a better
way to temporarily lock, or a lock-free solution
to multiple attempts to build the same target.

Finally, if someone wants to actually use it,
I can offer handholding and fast updates of
brokenness.

http://github.com/catenate/credo