A Tool for Maintaining Software-Build Dependencies
The process of building an executable file
from a large number of source files can be very costly,
sometimes requiring hours of computing time. An
incremental-build tool recognizes when a source file does
not need to be retranslated, because an existing object file
is sufficient. Typically, this decision is made by a
software-maintenance tool like Make, which bases its
decision on the following information: (1) a representation
of the dependencies between files, which arise due to file
inclusion and file translation (2) an operating system's
timestamp data, which is maintained for each file.
This research paper proposes a method and a
software-maintenance tool that combines file-oriented
dependencies with finer-grained dependencies; the latter are
those between a preprocessor-macro's definition and files
that refer to its name.
The benefit of performing incremental builds according to
file dependencies and macro dependencies is simple
to state, and it applies to many software-development
environments: The combination prevents unnecessary
retranslation, thereby conserving computing resources.