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 tools
- distcc
- 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 Mac OS Classic and similar to but not compatible with Unix make; 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[1]
- Rake, a Ruby-based build tool
- Snakemake, a Python-based build tool
- ElectricMake, a replacement for make and gmake that implements build parallelization with ElectricAccelerator. Produced by Electric Cloud Inc.
Non-Make-based tools
- Apache Ant, popular for Java platform development and uses an XML file format
- Apache Buildr, open-source build system, Rake-based, gives full power of scripting in Ruby with integral support for most abilities wanted in a build system
- Apache Maven, a Java platform tool for project management and automated software build
- A-A-P, a Python based build tool
- Boost.Build from Boost C++ libraries
- Cabal, common architecture for building applications and libraries in the programming language Haskell
- FinalBuilder, for Windows software developers. FinalBuilder provides a graphical IDE to both create and run your build projects in a single application. Final builder also includes the ability the execute unit test, deploy web projects or install and test your application.
- Flowtracer
- Gradle, an open-source build and automation system with a Groovy Rake domain specific language (DSL), combining the advantages of Ant and Apache Maven with additional features like a reliable incremental build
- Grunt (http://gruntjs.com/), an open-source JavaScript-based build automation framework, which runs on Node.js
- Leiningen, a tool providing commonly performed tasks in Clojure projects, including build automation
- MSBuild, the Microsoft build engine
- NAnt, a tool similar to Ant for the .NET Framework
- Ninja, created in 2010 as a Make replacement to speedup Google Chrome compilation[2] (can be used by CMake and GYP)
- Perforce Jam, a generally enhanced, ground-up tool which is similar to Make
- Psake, domain-specific language and build automation tool written in PowerShell
- sbt (Simple Build Tool), a build tool built on a Scala-based DSL
- SCons, Python-based, with integrated functionality similar to autoconf/automake
- Shake, Haskell based, embedded DSL
- Tup, Lua based, make-like DSL with a pure focus on speed and scalability
- 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 is a Python-based tool for configuring, compiling and installing applications. It is a replacement for other tools such as Autotools, Scons, CMake or Ant
- Pants is a multi language supporting build tool (Java, Python, Scala) that is primarily aimed at a multiple project with interdependencies development environment. This system is in very early (beta?) release as of September 2014.
- TinyBuilder, a distributed build system designed to provide consistent build results.
Build script generation tools
- automake
- configure
- CMake, a cross-platform tool that generates files for the native build environment, such as makefiles for Unix or Workspace files for Visual Studio
- GNU Build Tools (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.
- Generate Your Projects (GYP) - Created for Chromium; it is another tool that generates files for the native build environment
- imake
- Premake, a Lua based tool for making makefiles, Visual Studio files, Xcode projects, and more
- qmake
Continuous integration tools
- AnthillPro, build automation with pipeline support for deployment automation and testing. Cross-platform, cross-language
- Bamboo, continuous integration software
- Automated BuildStudio, a system for automating and managing software build, test and deploy processes, with build scheduling and continuous integration support
- Apache Continuum
- 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
- Buildout, a Python-based build system for creating, assembling and deploying applications from multiple parts
- CABIE Continuous Automated Build and Integration Environment, open source, written in Perl
- Cascade, a continuous integration tool that builds and tests software components after each change is committed to the repository. Also provides a "checkpointing" facility by which changes can be built and tested before they are committed
- Continua CI a support for Visual Studio, MSBuild, Ant, Nant, Rake, FinalBuilder, Git, Hg, Svn, Perforce and many other tools, Continua CI has something for everyone.
- CruiseControl, for Java and .NET
- FinalBuilder Server, for Windows software developers. Provides a web based continuous integration tool for FinalBuilder projects.
- Hudson, an extensible continuous integration engine
- Jenkins, an extensible continuous integration engine, forked from Hudson
- Team Foundation Server, an extensible continuous integration engine from Microsoft
- TeamCity
- Travis CI, a hosted continuous integration service
Configuration management tools
- Ansible (Python-based)
- CFEngine
- Chef (Ruby-based)
- Distelli
- Puppet (Ruby-based)
- Salt (Python-based)
- Urban Code
Other tools
- 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
Comparison of build automation software
Tool name | Operating system | Build language | Description language | License |
---|---|---|---|---|
A-A-P | Unix, Windows, OS X | C | recipe | GNU GPL |
Ant | cross-platform | Java | XML | Apache License 2.0 |
AnthillPro | cross-platform | cross-language | Wraps Make, Ant, Maven, MsBuild, Nant, etc. for controlled build, deploy, test processes. | Proprietary |
Automated BuildStudio | Windows | cross-language | graphical IDE with support for Ant/NAnt, MSBuild, JScript, VBScript, DelphiScript | Proprietary |
Bamboo | cross-platform | cross-language | continuous integration | Proprietary |
Buildr | cross-platform | Java | Ruby | Apache License 2.0 |
Capistrano | cross-platform | Ruby | XML | MIT License |
CMake | cross-platform | cross-language | uses CMakeLists.txt file | New BSD License |
Continuum | cross-platform | Java | ? | Apache License 2.0 |
CruiseControl | cross-platform | cross-language | XML | BSD-style license |
ElectricCommander | cross-platform | cross-language | flexible including gmake, bmake, emake and ant scripts | Proprietary |
FinalBuilder | Windows | cross-language | graphical IDE with support for Ant/NAnt, MSBuild, JScript, VBScript, IronPython, PowerShell | Proprietary |
Gradle | cross-platform | cross-language | Groovy based DSL | Apache License 2.0 |
Jenkins | cross-platform | cross-language | continuous integration | MIT License |
Leiningen | cross-platform | Clojure-Java | Clojure | Eclipse Public License |
make | cross-platform | cross-language | uses Makefile | Various |
Maven | cross-platform | Java | Project Object Model | Apache License 2.0 |
MPW Make | Mac OS Classic | ? | ? | ? |
MSBuild | Windows | cross-language | XML | MIT |
NAnt | cross-platform | .NET | XML | GNU GPL |
nmake | Unix, Linux, Windows/Interix | cross-language | uses Makefile | ? |
Open Build Service | Unix, Linux, Windows | cross-language | uses various package and image description formats (spec, dsc, ARCH, kiwi) | GNU GPL |
Perforce Jam | cross-platform | cross-language | uses Jamfile | Proprietary, free license for open source projects |
Rake | cross-platform | Ruby | Ruby | MIT License |
sbt (Simple Build Tool) | cross-platform | Scala, Java | Scala based DSL | New BSD License |
SBuild | cross-platform | Scala, Java | Scala based DSL | Apache License 2.0 |
SCons | cross-platform | cross-language | Python | MIT License |
Shake | cross-platform | cross-language | Haskell | BSD3 |
Team Foundation Server (Team Build) | Windows | cross-language | MSBuild, Windows Presentation Foundation | Proprietary |
Tweaker (build tool) | cross-platform | cross-language | Any (Ant, bash, batch, C, Erlang, Java, SQL, and VBScript by default, with 3rd party interface for extensions) | GNU GPLv3 |
Visual Build | Windows | cross-language | XML | Proprietary |
Waf | cross-platform | cross-language | Python | New BSD License |
Tool name | Operating system | Build language | Description language | License |