Document Type


Publication Date




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.

Copyright Statement

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. The final, definitive version of this document can be found online at Computer Languages, Systems & Structures, doi: 10.1016/