Build Systems: Bazel vs Make
Introduction
To start understanding what Bazel is and does, we need to know what build systems are. This, and a broad comparison of characteristics of build systems, will be explained in the first chapter. Next, the most used build tool at this time, namely Make, is discussed in more details, together with CMake. Finally, Bazel is discussed in details and compared to other build tools.
Build Systems
What is a build system
A build system is basically a program that knows how to build other programs, or in other words a tool that provides automated building. Building an application includes compiling, linking and packaging the code into a usable or executable form.
The tasks that are often included in an automated build are:
- Downloading dependencies
- Compiling source code into binary code
- Packaging that binary code
- Running tests
- Deployment to production systems