Introducing
The Slant team built an AI & it’s awesome
Find the best product instantly
Add to Chrome
Add to Edge
Add to Firefox
Add to Opera
Add to Brave
Add to Safari
Try it now
4.7 star rating
0
Log in
•
Sign up
Add Question
Follow
Development
Developer Tools
PC Builds
What are the best general purpose build systems?
14
Options
Considered
46
User
Recs.
Dec 6, 2022
Last
Updated
Related Questions
Activity
Here’s the Deal
Slant is powered by a community that helps you make informed decisions. Tell us what you’re passionate about to get your personalized feed and help others.
Let's go!
Have feedback or ideas?
Join our community
on Discord
Ad
14
Options
Considered
Best general purpose build systems
Price
Platforms
Price
--
GNU Make
-
Unix, Linux, Windows, Mac
-
--
Gradle
-
-
-
--
Tup
-
Windows, Linux, Mac
-
--
Bazel
-
-
-
--
Gulp
-
-
free
See Full List
--
GNU Make
My Rec
ommendation
for
GNU Make
My Recommendation for
GNU Make
Add Video or Image
All
15
Pros
8
Cons
6
Specs
Top
Pro
•••
Simple
See More
Top
Con
•••
Poor Windows support
See More
Specs
Platforms:
Unix, Linux, Windows, Mac
Top
Pro
•••
Flexible
See More
Top
Con
•••
Doesn't run on Windows by default
Make requires Cygwin/msys2/MinGW to run on Windows.
See More
Top
Pro
•••
FOSS software
See More
Top
Con
•••
Recursive make
"Recursive make" is a common makefile coding pattern which is used to invoke another session of make. Since a session of make only read in one top-level makefile, this is an easy and natural way to build makefiles for projects made of several submodules. But this pattern causes a lot of problems mainly that you need to partition the dependency tree into several smaller trees. This prevents dependencies from being expressed correctly between instances. This also causes parts of the dependency tree to be calculated multiple times which makes performance suffer. This and many other problems related to recursive make are explained very well in a classic article called Recursive Make Considered Harmful.
See More
Top
Pro
•••
Not limited to building packages
GNU Make is not limited to making packages only. It can also be used to install or remove a package, generate tags for it or anything else that can and should be done programmatically.
See More
Top
Con
•••
Not directly portable
Even though possible, cross-compilation issues are common, which is why many use automake to avoid some of those issues when dealing with Makefiles.
See More
Top
Pro
•••
Can compile almost everything
See More
Top
Con
•••
Ugly outputs
Make outputs are almost never using any ANSI colors, highlights, or showing any progress bar. They remain a long list of plain text outputs.
See More
Top
Pro
•••
Uses the full power of the UNIX shell
Make takes advantage of the powerful UNIX shell, using it at it's full potential. STDIN and STDOUT are especially useful because of their versatility.
See More
Top
Con
•••
Not parallel by default
You must use -j flag to use parallel builds.
See More
Top
Pro
•••
Parallel builds
Multiple build jobs can be run with the -j option
See More
Top
Pro
•••
Build process is easy
With Make it's easy for the user that wants to compile a project to do so. All that they need to do is run make and GNU Make will take care of the rest without the user even needing to know what's happening.
See More
Hide
See All
Get it
here
Recommend
9
3
--
Gradle
My Rec
ommendation
for
Gradle
My Recommendation for
Gradle
Add Video or Image
All
4
Pros
3
Cons
1
Top
Con
•••
It does not have a learning curve
It has a learning 17-dimensional manifold from a topologist's worst nightmare.
See More
Top
Pro
•••
Short scripts
Since Gradle does not use XML but it uses it's own DSL based on Groovy, Gradle scripts tend to be shorter than other build tools that use XML. Boilerplate code is also considerably small because it's DSL is designed to solve a specific problem: moving the software through its lifecycle starting from compilation into static analysis and testing, packaging and finally deployment.
See More
Top
Pro
•••
Free and open source software
See More
Top
Pro
•••
Plugin system
See More
Hide
See All
Get it
here
Recommend
7
3
--
Tup
My Rec
ommendation
for
Tup
My Recommendation for
Tup
Add Video or Image
All
9
Pros
8
Specs
Top
Pro
•••
FOSS software
See More
Specs
Platforms:
Windows, Linux, Mac
Top
Pro
•••
Parallel safe builds
Tup detects if parallel build is not safe and warns about it. However it may be somewhat annoying.
See More
Top
Pro
•••
Supports build variants
It allows you to build your project multiple times with different configurations. Perhaps the most common case is to build a release and a debug configuration with different compiler flags.
See More
Top
Pro
•••
Automatically cleans up old files
See More
Top
Pro
•••
Only compiles changed files
See More
Top
Pro
•••
Fast
See More
Top
Pro
•••
Cross-platform
Works on Linux, OSX and Windows.
See More
Top
Pro
•••
Extensible via Lua
See More
Hide
See All
Get it
here
Recommend
2
1
--
Bazel
My Rec
ommendation
for
Bazel
My Recommendation for
Bazel
Add Video or Image
All
12
Experiences
1
Pros
9
Cons
2
Top
Pro
•••
Correct and repeatable builds
Builds only use input files that are explicitly declared in the build specification. On Linux, Bazel runs tools in a sandboxed environment that contain only the minimum necessary files required.
See More
Top
Con
•••
Draconian sandboxing, explicit inputs requirement
Requirement to explicitly name all inputs disqualifies Bazel for many workflows, e.g. those relying on tools that scan a directory tree themselves looking for files to process. Sandboxing as implemented in Bazel imposes further restrictions. If a command is successful when you type it in the shell, it should also be successful when pasted verbatim into a rule, but with Bazel it very often isn't.
See More
ProductiveRuda's Experience
Worked at google for 5+ years and used it extensively in various projects in different languages, mainly C++, then Python, bash scripts and more.
See More
Top
Pro
•••
Fast even at scale
Even at large scale it's pretty fast (it's based on what Google uses internally for their huge code base).
See More
Top
Con
•••
Confusing for beginners
With so many capabilities, trying to implement with a simple project is overkill and unpleasant.
See More
Top
Pro
•••
Can rule shell commands
See More
Top
Pro
•••
Handles mixed language builds
See More
Top
Pro
•••
High level build descriptions
See More
Top
Pro
•••
Build rule errors are informative
When builds fail because of an issue in the build rules, the errors provided are usually very informative and helpful to resolve the issue.
See More
Top
Pro
•••
Good IDE support
See More
Top
Pro
•••
Standard protocol for remote execution and caching
See More
Top
Pro
•••
Remote execution of commands
See More
Hide
See All
Get it
here
Recommend
4
3
--
Gulp
My Rec
ommendation
for
Gulp
My Recommendation for
Gulp
Add Video or Image
All
2
Cons
1
Specs
Top
Con
•••
Callbacks can make it hard to write sequential actions
ECMAScript 6 is really needed so as to make scripts more readable using Promises and fat arrow functions.
See More
Specs
Price:
free
Task instruction style:
code
Hide
Get it
here
Recommend
1
2
--
Meson
My Rec
ommendation
for
Meson
My Recommendation for
Meson
Add Video or Image
All
3
Pros
2
Cons
1
Top
Pro
•••
Simple
Build definitions are by nature simplified and straightforward.
See More
Top
Con
•••
Strict design methodology
Authors have a very "our way or the highway" approach to the right way to build software.
See More
Top
Pro
•••
Fast
Built on Ninja, which is optimized for very fast builds.
See More
Hide
See All
Get it
here
Recommend
1
--
Cake
My Rec
ommendation
for
Cake
My Recommendation for
Cake
Add Video or Image
All
6
Experiences
1
Pros
3
Cons
1
Specs
Top
Pro
•••
Cross platform
Windows, Linux and macOS versions available.
See More
Top
Con
•••
No GUI
Everything is script based, there is no graphical front end.
See More
RickZeeland's Experience
Cross platform build automation system developed in C#. Useful for compiling code, copy files/folders, running unit tests, compress files and building NuGet packages.
See More
Specs
Platforms:
Windows, Linux, Mac
Technology:
C#
Top
Pro
•••
Integrations
Integrates with VS, VS Code, Rider and Atom. Also supports popular build systems like TeamCity and GitHub Actions.
See More
Top
Pro
•••
Tools support
Standard support for MSBuild, MSTest, xUnit, NUnit, NuGet, ILMerge, WiX and SignTool.
See More
Hide
See All
Free
Recommend
1
--
Python
My Rec
ommendation
for
Python
My Recommendation for
Python
Add Video or Image
All
4
Pros
2
Cons
1
Specs
Top
Con
•••
Not designed as a build system
See More
Top
Pro
•••
Relatively easy to write cross-compiling code
Most of the file system operations can be written using Python directly which makes it run on any platform. Also it has a really powerful command-line parser built-in (call argparse).
See More
Specs
Platforms:
Windows, Linux, macOS, AIX, IBM i, iOS, z/OS, Solaris, VMS
Current stable version:
3.9.1
GZipped size:
22.5MB
Typing discipline:
Dynamically typed
See All Specs
Top
Pro
•••
Full programming language
See More
Hide
See All
Get it
here
Recommend
1
--
CMake
My Rec
ommendation
for
CMake
My Recommendation for
CMake
Add Video or Image
All
6
Experiences
1
Pros
3
Cons
1
Specs
Top
Pro
•••
Built in cross platform testing and packaging support
See More
Top
Con
•••
Uses own language
See More
FlexibleAmurru's Experience
Confusing to use for beginners and often breaks.
See More
Specs
Platforms:
Windows, Linux, Mac
Top
Pro
•••
Out-of-the-box GUI available
CMake comes with the fantastic ncurses GUI ccmake out of the box. Large codebases including WeeChat use it, to the point that the developer never needs to touch CMake code, but it is highly readable if he wishes to examine it.
See More
Top
Pro
•••
Built-in, cross-platform dependency finding
See More
Hide
See All
Get it
here
Recommend
1
2
--
Buck
My Rec
ommendation
for
Buck
My Recommendation for
Buck
Add Video or Image
All
2
Pros
2
Top
Pro
•••
Can be integrated with IntelliJ and Xcode IDEs
See More
Top
Pro
•••
Fast parallel builds
Buck runs artifact builds in parallel to increase the speed in which build jobs are run and take full advantage of all the cores available.
See More
Hide
Get it
here
Recommend
1
--
Fabricate
My Rec
ommendation
for
Fabricate
My Recommendation for
Fabricate
Add Video or Image
All
4
Pros
3
Cons
1
Top
Pro
•••
Can run tasks in parallel
See More
Top
Con
•••
Not maintained
See More
Top
Pro
•••
Avoids any step doing nothing
Detects input/output file changes and if input files didn't change, doesn't run the command again.
See More
Top
Pro
•••
Easy to script
Fabricate uses Python as a scripting language. Being a fully usable language and an easy one at that, makes Fabricate rather easy to script.
See More
Hide
See All
Get it
here
Recommend
1
1
--
Apache Ant
My Rec
ommendation
for
Apache Ant
My Recommendation for
Apache Ant
Add Video or Image
All
2
Pros
1
Cons
1
Top
Pro
•••
Easy to write simple cross-compilable scripts
See More
Top
Con
•••
Ugly XML configuration file
See More
Hide
Get it
here
Recommend
1
--
Please
My Rec
ommendation
for
Please
My Recommendation for
Please
Add Video or Image
All
4
Pros
3
Cons
1
Top
Pro
•••
Cross-platform
Linux, macOS, FreeBSD.
See More
Top
Con
•••
No support for Android or iOS yet
See More
Top
Pro
•••
Intuitive syntax and workflow
Much simpler than multi-tier build systems, like Make and Ninja.
See More
Top
Pro
•••
Code Completion
Works with many IDEs, including Visual Studio Code.
See More
Hide
See All
Free
Recommend
1
--
SCons
My Rec
ommendation
for
SCons
My Recommendation for
SCons
Add Video or Image
All
2
Pros
2
Top
Pro
•••
Automatic dependency analysis for C, C++ and Fortran
See More
Top
Pro
•••
Powerful scripting capabilities
Uses Python as a scripting language.
See More
Hide
Get it
here
Recommend
Don't see your favorite option? Add it.
I Recommend...
Built By the Slant team
Find the best product instantly.
4.7 star rating
Add to Chrome
Add to Edge
Add to Firefox
Add to Opera
Add to Brave
Add to Safari
Try it now - it's free
One sec!
Are you sure that you want to abandon your hard work?
Delete Work
Continue working
{}
undefined
url next
price drop