List of build automation software

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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[edit]

  • 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[edit]

  • 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 (, 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[edit]

  • 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[edit]

  • 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[edit]

Other tools[edit]

  • 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[edit]

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 Java-Groovy 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