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