List of build automation software

Build automation involves scripting or automating the process of compiling computer source code into binary code.   Below is a list of notable tools associated with automating build processes. 

Make-based
 GNU make, a widely used make implementation with a large set of extensions 
 make, a classic Unix build tool
 mk, developed originally for Version 10 Unix and Plan 9, and ported to Unix as part of plan9port
 MPW Make, developed for the classic Mac OS and similar to but not compatible with Unix make; the modern macOS (OS X) comes with both GNU make and BSD make; available as part of Macintosh Programmer's Workshop as a free, unsupported download from Apple
 nmake
 PVCS-make, basically follows the concept of make but with a noticeable set of unique syntax features

Make-incompatible
 Apache Ant, popular for Java platform development and uses an XML file format
 Apache Buildr, open-source build system, Rake-based, gives the full power of scripting in Ruby with integral support for most abilities wanted in a build system
 Apache Maven, a Java platform tool for dependency management and automated software build
 ASDF LISP build system for building LISP projects
 A-A-P, a Python-based build tool
 Bazel, a portion of Blaze (Google's own build tool) written in Java, using Starlark (BUILD file syntax) to build projects in Java, C, C++, Go, Python, Objective-C…
 Bloop, a Scala/Java build server that only supports compiling, testing, running and debugging code.  it focuses on speed and good integration with other build tools. 
 BitBake, a Python-based tool with the special focus of distributions and packages for embedded Linux cross-compilation
 Boot, a Java build and dependency management tool written in Clojure 
 boost.build For C++ projects, cross-platform, based on it Perforce Jam. 
 Buck, a build system developed and used by Facebook, written in Java, using Starlark (BUILD file syntax) as Bazel
 Buildout, a Python-based build system for creating, assembling and deploying applications from multiple parts
 Cabal, a common architecture for building applications and libraries in the programming language Haskell
 Cargo is Rust's package manager and build system. 
 FinalBuilder, for Windows software developers.  FinalBuilder provides a graphical IDE to both create and run build projects in a single application.  The final builder also includes the ability the execute the unit test, deploy web projects or install and test applications. 
 Flowtracer
 Gradle, an open-source build and automation system with an Apache Groovy-based domain specific language (DSL), combining features of Apache Ant and Apache Maven with additional features like a reliable incremental build
 Grunt, a build tool for front-end web development
 Gulp, another build tool for front-end
 IncrediBuild
 Leiningen, a tool providing commonly performed tasks in Clojure projects, including build automation
 Mix, the Elixir build tool
 Mx, the build tool used in GraalVM and the related projects
 MSBuild, the Microsoft build engine
 NAnt, a tool similar to Ant for the .NET Framework
 Ninja, a small build system focused on speed by using build scripts generated by higher-level build systems
 OMake, enhanced build system designed for scalability and portability (similar to Make). 
 Pants, inspired from Google's Blaze but written in Python, also using Starlark (BUILD file syntax) 
 Perforce Jam, a generally enhanced, ground-up tool which is similar to Make
 Please, inspired from Google's Blaze but written in Go, also using Starlark (BUILD file syntax) 
 Psake,  domain-specific language and build-automation tool written in PowerShell
 Qt Build System
 Rake, a Ruby-based build tool
 sbt, a build tool built on a Scala-based DSL
 SCons, Python-based, with integrated functionality similar to autoconf/automake
 Stack, a tool to build Haskell projects, manage their dependencies (compilers and libraries), and for testing and benchmarking. 
 Tup, a file-based build system for Linux, OSX, and Windows
 Tweaker, allowing task definitions to be written in any languages (or intermixed languages) while providing a consistent interface for them all
 Visual Build, a graphical user interface software for software builds
 Waf, a Python-based tool for configuring, compiling and installing applications.  It is a replacement for other tools such as Autotools, Scons, CMake or Ant

Build script generation

These  generator tools do not build directly, but rather generate files to be used by a native build tool (as the ones listed in the previous two sections). 

 Bakefile
 BuildAMation, a multi-platform tool, using a declarative syntax in C# scripts, that builds C/C++ code in a terminal using multiple threads, or generates project files for Microsoft Visual Studio, Xcode or MakeFiles. 
 CMake generates files for various build tools, such as make, ninja, Apple's Xcode, and Microsoft Visual Studio.  CMake is also directly used by some IDE as Qt Creator, KDevelop and GNOME Builder. 
 GNU Build System  (aka autotools), a collection of tools for portable builds.  These in particular include Autoconf and Automake, cross-platform tools that together generate appropriate localized makefiles. 
 GYP (Generate Your Projects) - Created for Chromium; it is another tool that generates files for the native build environment
 imake
 Meson, a build system optimized for performance and usability is based on ninja on Linux, Visual Studio on Windows and Xcode on macOS.  Meson is also directly used by GNOME Builder. 
 OpenMake Software Meister
 Premake, a Lua-based tool for making makefiles, Visual Studio files, Xcode projects, and more
 qmake
 xmake

Continuous integration

 AnthillPro, build automation with pipeline support for deployment automation and testing.  Cross-platform, cross-language
 Apache Continuum - discontinued
 AWS CodePipeline, hosted continuous delivery service from Amazon Web Services
 Azure DevOps (formerly TFS and VSTS), can be Azure-hosted services or self-hosted server build capabilities
 Bamboo, continuous-integration software
 Bitbucket Pipelines and Deployments, continuous integration for Bitbucket hosted repositories.  Cross-platform. 
 Buildbot, a Python-based software development continuous-integration tool which automates the compile/test cycle
 BuildIT, a free graphical build or task tool for Windows with an emphasis on simplicity and ease of use
 CABIE Continuous Automated Build and Integration Environment, open source, written in Perl
 CruiseControl, for Java and .NET
 Go continuous delivery, open source, cross-platform
 GitLab (GitLab Runner),  continuous integration and git server
 Hudson, an extensible continuous-integration engine
 Jenkins, an extensible continuous-integration engine, forked from Hudson
 Spinnaker, open source multi-cloud continuous delivery service from Netflix and Google
 TeamCity
 Travis CI, a hosted continuous-integration service

Configuration management
 Ansible (Python-based)
 CFEngine
 Chef (Ruby-based)
 Distelli
 LCFG
 OpenMake Software Release Engineer
 Otter
 Puppet (Ruby-based)
 Salt (Python-based)
 Rex (Perl-based)

Meta-build
A meta-build tool is capable of building many different projects using a subset of existing build tools.  Since these usually provide a list of packages to build, they are also often called package managers. 

 Pkgsrc, package manager of NetBSD and other operating systems. 
 Portage, package manager of the Gentoo Linux distribution
 Nix, functional package manager for Linux and macOS focusing on reproducible builds, used for the NixOS Linux distribution. 
 Guix, functional package manager based on Nix, used for the GuixSD Linux distribution. 
 Collective Knowledge, cross-platform package manager to rebuild software environment for research workflows
 Homebrew, package manager for macOS

Others
 checkinstall, checkinstall is a program that monitors an installation procedure and creates a standard package for your distribution. 
 Open Build Service, a hosted service to help build packages for various Linux distributions

Licensing overview

References

External links
 

Category:Build automation