|
Make is a tool that controls the generation of executables and other non-source files of a
program from the program's source files. Dependencies between files in a build are a critical
part of Make; without them Make doesn't know what to build or when to rebuild items.
Accurate dependencies are the cornerstone of a successful build, and yet are all too often
missing or broken, which results in wasted time or, worse, in corrupt or incorrect object code.
In this whitepaper, John Graham-Cumming, Founder and Chief Scientist at Electric Cloud, Inc.
will provide time-saving tips for automating and optimizing dependencies between files in a
software build. Three main types of dependencies will be discussed: those that exist between
source and object files (that are used to regenerate objects when source changes), those that
exist between objects (for example, used to drive a linker), and dependencies at the module
or project level.
For source/object dependencies in particular, instead of generating dependencies manually,
there are simple techniques for generating dependencies automatically, saving time and
reducing errors and rework. This paper provides specific guidance, complete with examples,
for automating dependency generation, and describes some of the challenges left unsolved by
traditional freeware/open source dependency management techniques.
|