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]

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

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 dependency management and automated software build
  • ASDF LISP buildsystem for building LISP projects
  • A-A-P, a Python-based build tool
  • Bazel, Google's own build tool, now publicly available in Beta.
  • 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
  • Buck, a build system developed and used by Facebook
  • Buildout, a Python-based build system for creating, assembling and deploying applications from multiple parts
  • 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 build projects in a single application. Final builder also includes the ability the execute unit test, deploy web projects or install and test applications.
  • Flowtracer
  • Gradle, an open-source build and automation system with a Groovy-based domain specific language (DSL), combining features of Apache Ant and Apache Maven with additional features like a reliable incremental build
  • IncrediBuild
  • 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
  • Octopus Deploy, an automated deployment and release management server for deployment of ASP.NET applications, Windows Services and databases
  • Perforce Jam, a generally enhanced, ground-up tool which is similar to Make
  • Psake, domain-specific language and build automation tool written in PowerShell
  • Rake, a Ruby-based build tool
  • sbt (Scala Simple Build Tool), 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.
  • 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

Build script generation tools[edit]

  • 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.
  • 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 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 build system, a multi-platform build system optimized for performance and usability
  • OpenMake Software Meister
  • 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
  • Apache Continuum - discontinued
  • 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
  • DeployBot, a hosted continuous integration service
  • 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
  • Visual Studio Team Services, provides Azure hosted build capabilities
  • TeamCity
  • Travis CI, a hosted continuous integration service
  • Shippable, a hosted cloud platform that provides hosted continuous integration, deployment, and testing to GitHub and Bitbucket repositories

Configuration management tools[edit]

Meta-build tools[edit]

A meta-build tool is capable of building many different projects using a subset of existing buildtools. 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 the Nixos Linux distribution
  • Guix, functional package manager for the GuixSD Linux distribution
  • Collective Knowledge, cross-platform package manager to rebuild software environment for research workflows

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 Description language License
A-A-P recipe GNU GPL
Ant XML Apache License 2.0
AnthillPro Wraps Make, Ant, Maven, MsBuild, Nant, etc. for controlled build, deploy, test processes. Proprietary
Bamboo continuous integration Proprietary
BuildAMation C# for build scripts, XML for high level dependencies New BSD License
Buildr Ruby Apache License 2.0
Boot Clojure Eclipse Public License
Capistrano XML MIT License
CMake uses CMakeLists.txt file New BSD License
Continuum  ? Apache License 2.0
CruiseControl XML BSD-style license
ElectricCommander flexible including gmake, bmake, emake and ant scripts Proprietary
FinalBuilder graphical IDE with support for Ant/NAnt, MSBuild, JScript, VBScript, IronPython, PowerShell Proprietary
Gradle Groovy-based DSL Apache License 2.0
Jenkins continuous integration MIT License
Leiningen Clojure Eclipse Public License
make uses Makefile Various
Maven Project Object Model Apache License 2.0
Meson build system custom DSL Apache License 2.0
MPW Make  ?  ?
MSBuild XML MIT
NAnt XML GNU GPL
nmake uses Makefile  ?
Open Build Service uses various package and image description formats (spec, dsc, ARCH, kiwi) GNU GPL
OpenMake Software Meister ActivePerl Proprietary with free license (Artistic License) for small teams
Perforce Jam uses Jamfile Proprietary, free license for open source projects
Rake Ruby MIT License
sbt (Simple Build Tool) Scala-based DSL New BSD License
SCons Python MIT License
Team Foundation Server MSBuild, Windows Presentation Foundation, JSON - REST interfaces, Programmatic (Can generate definitions through code) Proprietary
Tweaker (build tool) Any (Ant, bash, batch, C, Erlang, Java, SQL, and VBScript by default, with 3rd party interface for extensions) GNU GPLv3
Visual Build XML Proprietary
Waf Python New BSD License
Tool name Description language License

References[edit]

  1. ^ mailing list discussion about porting PVCS-make scripts to GNU-make, From: Paul D. Smith, Subject: Re: PVCS to GNU, Date: 2003-02-25

External links[edit]