Abstract
This paper describes the author’s exploratory experience of porting the
build systems of two large software distributions, the LLVM and GCC
programming-language translation systems, to the Amake build tool. Amake
is an enhanced derivative of the very popular GNU Make. Amake adds
automatic language-independent dependency analysis and site-wide
heterogeneous target caching. Amake also supports GNU Make’s
parallel-build capabilities. This experience included (mostly) expected
changes to both of these build systems, but somewhat surprising changes
to Amake’s design and implementation. A description of the former
changes is hoped to encourage developers to migrate their build systems
to Amake. The latter changes showcase Amake’s most recently added
features.