Build systems are software tools designed to automate the process of program compilation.
Build systems are software tools designed to automate the process of program compilation. Build systems come in various forms, and are used for a variety of software build tasks. Their primary goal is to efficiently create executables and libraries.
At their core, build systems are functional based languages mapping a set of source resources (in most cases, files) to a target (executable). The primary assumption of the build system is that each of the build actions are idempotent. That is, each invocation of a build command with the same input and options will create the same output. This assumption allows the build system to memorize the actions that is has already performed, and only perform build actions on resources that have changed.