|
|
This article needs attention from an expert in Technology. Please add a reason or a talk parameter to this template to explain the issue with the article. WikiProject Technology (or its Portal) may be able to help recruit an expert. |
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]
- bmake, portable version of NetBSD make
- build
- cake
- Clearmake
- distcc
- distmake
- Dmake a make utility similar to GNU make or the Workshop dmake
- JMake
- JMK
- kbuild
- make, a classic Unix build tool
- makeLib
- makeme
- MakeModules
- Make:NG
- makeplus
- makepp
- make utilities
- mk, developed originally for Version 10 Unix and Plan 9, and ported to Unix as part of plan9port
- mk-configure, bmake-based
- mmm
- Mosmake
- 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, Bell Labs' nmake, forked into two versions after the AT&T trivestiture: a research version from AT&T Labs and an Alcatel-Lucent Bell Labs supported version
- OMake
- Opus Make
- Paradigm Visual Make
- Prime Mover
- Prototype Makefiles
- PVM Gmake
- make.py (and the pymake module), written in pure Python (programming language) to be portable (Python 2.7 is strongly recommended not Python 3) and mostly compatible with makefiles written for GNU make..
- qmake
- Rake, a Ruby-based build tool
- Sire
- smake
- Supermake
- SMK
- tmk
- Yabu
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 Ivy
- Apache Maven, a Java platform tool for project management and automated software build
- A-A-P, a Python based build tool
- Boost.Build
- bras
- builditis
- Buildtool
- Cabal, common architecture for building applications and libraries in the programming language Haskell
- Cake, a Python based build tool
- cake, a Clojure build tool
- cook
- dev-env
- Flowtracer
- Gant, a Groovy-based build system that uses Ant tasks.
- Gconfigure
- Gradle, an open-source build and automation system with a Groovy Rake domain specific language (DSL), combining the advantages of Ant and Maven plus providing many innovative features like a reliable incremental build
- hmake
- Hyper Build, visually design the build process via an easy-to-use user interface using the hundreds of built-in actions for the most commonly used tasks and tools
- Invmake, a python minimal building tool inspiring from make but simpler and with inverse dependency graph. It's centered in intuitiveness rather than speed. Focus on personal projects.
- Istrice
- leiningen, a Clojure build tool
- Meique, Build tool for C and C++ that uses Lua for scripting.
- microbuild, a lightweight Python build tool. Build scripts written in pure Python with a decorator used to specify task dependencies and automatically generate a command line interface.
- MSBuild, the Microsoft build engine
- mxx-ru
- NAnt, a tool similar to Ant for the .NET Framework
- ninja
- ocamlbuild
- Odin
- OSE
- Perforce Jam, a generally enhanced, ground-up tool which is similar to Make
- PerlBuildSystem
- Phing
- ProjectBuilder
- pynt, a pure Python build tool. Forked from microbuild
- Rant
- SBuild - Flexible Scala-based build system
- Schmant
- Simple Build Tool, a build tool built on a Scala-based DSL
- SCons, Python-based, with integrated functionality similar to autoconf/automake, descended from a Perl build driver called Cons
- Shake, a tool written in Haskell which provides automatic build parallelism and fine-grained dependency tracking
- Source 2 Binary
- Sweet Build, a Lua scriptable build tool
- tup, build system that uses file system monitoring to provide automatic dependency discovery and near-optimal build times
- 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
- XMake
- XMAKE
- Yruba, a rule system similar to Make or Ant for the shell
Build script generation tools [edit]
- automake
- Bakefile
- ccbuild
- CMake, a tool that generates files for the native build environment, such as makefiles for Unix or Workspace files for Visual Studio
- cmvn - Multi-project configurator and generator of Apache Maven pom.xml files
- confix
- GNU Build Tools, a collection of tools for portable builds
- GYP - Created for Chromium; it is another tool that generates files for the native build environment
- imake
- MakeMake
- Maker
- mfg
- mmake
- MPC, a free product that creates build tool files for many versions of Make, Visual Studio, Eclipse, and more
- OpenMake Meister, build script generation and dependency management engine; also includes continuous integration abilities
- Otto
- Premake, a Lua based tool for making makefiles, Visual Studio files, Xcode projects, and more
- Pre Make Kit
- RPSL
- Sdist
- Sol Manager
- tmake
- toc
- XPJ
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
- Apache Gump
- BuildBeat
- 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
- BuildMaster, an integrated build, release, and application lifecycle management system developed by Inedo
- BuildMonkey
- Buildout, a Python-based build system for creating, assembling and deploying applications from multiple parts
- BusyB
- 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
- CruiseControl
- Dart as well as its successor, CDash
- DSSS
- Electric Commander
- FinalBuilder, for Windows software developers. FinalBuilder provides a graphical IDE to create and run build projects
- Go, continuous integration and Agile release management solution, Cross-platform, cross-language
- Hudson, an extensible continuous integration engine
- Jenkins, an extensible continuous integration engine
- IBM Rational Build Forge
- IKAN ALM - Web-based ALM 2.0 platform supporting continuous integration and lifecycle management
- Lintouch
- Luntbuild
- MidWatch
- OpenMake Meister, build script generation and dependency management engine; also includes continuous integration abilities
- OpenMake Mojo, free continuous integration server
- Parabuild
- PBS, Perl-based, oriented towards continuous integration of large systems
- PTXdist
- TeamCity
- Test-AutoBuild
- Travis-CI, an open source CI system, written in Ruby
- QEF
- QuickBuild
Hosted continuous integration tools [edit]
A good comparison with some criteria to select one of these services can be found here.
- BuildLocker - Web-based continuous integration solution for Java and .NET projects
- CI Foundry - Outsourced Continuous Integration service (Java, .NET and Ruby)
- CDash Pro - Using continuous build scripts (C/C++, Fortran, Java, extendible)
- Circle - Hosted Continuous Integration and Deployment for webapps.
- Clinker - a full software development ecosystem (including Jenkins as the CI tool)
- CloudBees DEV@cloud - Jenkins as a Service
- Continuous.io - Hosted Continuous Integration (mainly for Python, but custom build scripts can be used)
- FaZend - Free Hosted Continuous Integration Environment
- Hosted CI - Hosted Continuous Integration, for iOS and Mac; Jenkins-based
- Railsonfire - Hosted Continuous Integration and Deployment tool for Ruby. Supports Git/GitHub/Heroku.
- Shining Panda - Hosted Continuous Integration for Python; Jenkins-based
- Travis CI - A distributed build system for the open source community
Configuration management tools [edit]
Dependency generator tools [edit]
Other tools [edit]
- Ellexus Breeze, a build tracing and debugging tool made by Ellexus Ltd
- Deb Creator, used to create .deb files
- Debian dist
- Debian Package Maker, used to create .deb files
- checkinstall, checkinstall is a program that monitors an installation procedure, and creates a standard package for your distribution.
- EasyBuild is a software build and installation framework written in Python that allows you to install software in a structured, repeatable and robust way.
- Open_Build_Service, a hosted service to help build packages for various Linux distributions
- Project-Builder.org, a tool to help upstream projects to build packages and repositories for multiple Operating Systems from multiple Version Control Systems.
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 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 |
| buildfactory |
Unix, Windows |
cross-language |
? |
Proprietary |
| Buildr |
cross-platform |
Java |
Ruby |
Apache 2.0 |
| Cake |
cross-platform |
cross-language |
Python |
MIT |
| Capistrano |
cross-platform |
Ruby |
domain specific language for software builds |
MIT |
| CMake |
cross-platform |
cross-language |
uses CMakeLists.txt file |
New BSD |
| Continuum |
cross-platform |
Java |
? |
Apache 2.0 |
| CruiseControl |
cross-platform |
cross-language |
XML |
BSD-style license |
| dmake |
Linux, Solaris, Windows |
OpenOffice, Solaris |
uses Makefile |
? |
| ElectricCommander |
cross-platform |
cross-language |
flexible including gmake, bmake, emake and ant scripts |
Proprietary |
| Fabricate |
cross-platform |
cross-language |
Python |
New BSD |
| FinalBuilder |
Windows |
cross-language |
graphical IDE with support for Ant/NAnt, MSBuild, JScript, VBScript, IronPython, PowerShell |
Proprietary |
| Go |
cross-platform |
cross-language |
graphical IDE with support for Ant/NAnt, MSBuild, rake and any tool with a command line interface |
Proprietary, cost-free Community edition license |
| Gradle |
cross-platform |
Java-Groovy |
Groovy based DSL |
Apache 2.0 |
| Hyper Build |
Windows |
cross-language |
Visual IDE for designing builds / XML build project files. |
Proprietary |
| icemake |
cross-platform |
C, C++, assembly, TeX |
S-expression based |
? |
| IKAN ALM |
cross-platform |
cross-language |
Ant, NAnt, Maven2, any tool via the API |
Proprietary |
| make |
cross-platform |
cross-language |
uses Makefile |
Various |
| makepp |
cross-platform |
cross-language, optimized for C++ |
uses Makefile |
GNU GPL |
| mk-configure |
cross-platform |
cross-language |
uses Makefile (bmake dialect) |
BSD-style license |
| Maven |
cross-platform |
Java |
Project Object Model |
Apache 2.0 |
| [[Module::Build]] |
cross-platform |
Perl |
? |
GNU GPL |
| MPW Make |
Mac OS Classic |
? |
? |
? |
| MSBuild |
Windows |
cross-language |
XML |
Proprietary freeware |
| NAnt |
cross-platform |
.NET |
XML |
GNU GPL |
| nmake |
Unix, Linux, Windows/Interix |
cross-language |
uses Makefile |
? |
| OMake |
Unix, Linux, OS X, Windows |
cross-language |
custom scripting language with make-like syntax and portable build-in shell |
GNU GPL |
| OpenMake Meister |
Unix, Linux, Windows, z/OS |
cross-language |
XML, Perl, REXX |
Proprietary |
| OpenMake Mojo |
Unix, Linux, Windows |
cross-language |
XML, Perl |
Proprietary, free edition available |
| ParaBuild |
? |
? |
? |
Proprietary with a free small team edition |
| PBS |
cross-platform |
cross-language |
Perl |
Artistic 1 & GPL 1 |
| Perforce Jam |
cross-platform |
cross-language |
uses Jamfile |
Proprietary, free licence for open source projects |
| Phing |
cross-platform |
PHP |
XML (Ant clone) |
GNU Lesser GPL |
| PyBuild |
? |
? |
Python |
GNU GPL |
| Rake |
cross-platform |
Ruby |
Ruby |
MIT |
| SBuild |
cross-platform |
Scala, Java |
Scala based DSL |
Apache 2.0 |
| SCons |
cross-platform |
cross-language |
Python |
MIT |
| Shake |
cross-platform |
cross-language |
Haskell |
New BSD |
| Simple Build Tool |
cross-platform |
Scala, Java |
Scala based DSL |
BSD |
| Speedy Make |
cross-platform |
cross-language |
XML |
GNU GPL |
| Sweet Build |
Microsoft Windows |
cross-language |
DSL and Lua |
libpng License |
| TMake |
Windows, Linux and BSD |
cross-language |
lua |
GPLv3 |
| 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) |
GPLv3 |
| Visual Build |
Windows |
cross-language |
XML |
Proprietary |
| Waf |
cross-platform |
cross-language |
Python |
New BSD |
| WANT |
Windows |
Object Pascal (Delphi) |
XML |
? |
| X-Script Generator |
Windows |
cross-language |
XML |
? |
| Yabu |
Unix, POSIX |
cross-language |
uses Buildfile |
Public domain |
| Tool name |
Operating system |
Build language |
Description language |
License |
Debugging and understanding build automation [edit]