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.