automake-history: Techniques for Dependencies

 
 2.4 Techniques for Computing Dependencies
 =========================================
 
 There are actually several ways for a build tool like Automake to cause
 tools to generate dependencies.
 
 'makedepend'
      This was a commonly-used method in the past.  The idea is to run a
      special program over the source and have it generate dependency
      information.  Traditional implementations of 'makedepend' are not
      completely precise; ordinarily they were conservative and
      discovered too many dependencies.
 The tool
      An obvious way to generate dependencies is to simply write the tool
      so that it can generate the information needed by the build tool.
      This is also the most portable method.  Many compilers have an
      option to generate dependencies.  Unfortunately, not all tools
      provide such an option.
 The file system
      It is possible to write a special file system that tracks opens,
      reads, writes, etc, and then feed this information back to the
      build tool.  'clearmake' does this.  This is a very powerful
      technique, as it doesn't require cooperation from the tool.
      Unfortunately it is also very difficult to implement and also not
      practical in the general case.
 'LD_PRELOAD'
      Rather than use the file system, one could write a special library
      to intercept 'open' and other syscalls.  This technique is also
      quite powerful, but unfortunately it is not portable enough for use
      in 'automake'.
 

Menu