A Software Tool for Maintaining File and Macro Build Dependencies

Translating each of a Unix software system's source files into an object file, and linking the object files into an executable file, can be a time-consuming process. Object-file generation accounts for most of this time. Tools that recognize and avoid unnecessary object-file regeneration are very popular. Many such tools are named Make.

A software system often contains a parameter file. A parameter file is a source file, textually included by every other source file, which defines macros shared by multiple source files. Each object file depends on the parameter file, according to file dependencies. Make-like tools only understand file dependencies. So, when a software developer changes a macro in a parameter file, every object file is regenerated, regardless of whether its corresponding source file actually refers to the changed macro.

Unnecessary object-file regeneration can be avoided by replacing some file dependencies with macro dependencies, which express that an object file depends on a macro.

Dep is a tool implementing a method for automatically detecting and maintaining a software system's file and macro dependencies. Dep works with any flavor of Make to minimize the cost of rebuilding an executable file.