This paper describes a software-build tool named Amake, an extension of GNU Make. Its additional features solve important problems that have, until now, only been addressed by “high-end” build tools (e.g., ClearCase and Vesta).
With a typical build tool, if a top-level target must be updated, intermediate targets must be built from sources, and then combined to build the top-level target. The enhancements described here allow a top-level target to be fetched from a shared cache, without building, or even fetching its intermediate-target dependencies. Thus, a developer’s workspace may need only contain sources and top-level targets. This reduces build time, reduces network traffic, and saves disk space.
This is an author-produced, peer-reviewed version of this article. © 2017, Elsevier. Licensed under the Creative Commons Attribution-NonCommercial-No Derivatives 4.0 License. http://creativecommons.org/licenses/by-nc-nd/4.0/. The final, definitive version of this document can be found online at Computer Languages, Systems & Structures, doi: 10.1016/j.cl.2017.05.004
Buffenbarger, Jim. (2017). "Amake: Cached Builds of Top-Level Targets". Computer Languages, Systems & Structures, 5020-30.