Extending GNU Make With Custom Fingerprints to Reduce Redundant Recompilation

By default, every time a developer changes some part of a project's source code, all code has to be (re-)compiled. Since this approach consumes a lot of time and energy, there are tools that try to reduce the number of redundant compilations. For example, the make tool re-executes a (build-)step only if at least one input dependency has a newer timestamp than the output artifact. However, a change does not have to affect the program, e.g., a changed comment, but make does not support other metrics.

The goal of this thesis is to extend make to support generic metrics and evaluate it using various C/C++ open-source software projects. Ideally, in the end, a purely cosmetic change to a central source file should not lead to a re-execution of the linker.

USENIX Conference A Best Paper Award
cHash: Detection of Redundant Compilations via AST Hashing
Christian Dietrich, Valentin Rothberg, Ludwig Füracker, Andreas Ziegler, Daniel LohmannProceedings of the 2017 USENIX Annual Technical Conference (USENIX '17)USENIX Association2017Best Paper Award.
PDF Details Slides Raw Data [BibTex]