List of build automation software

Short description: none

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.

## Contents

* 1 Make-based
* 2 Make-incompatible
* 3 Build script generation
* 4 Continuous integration
* 5 Configuration management
* 6 Package managers
* 7 Others
* 8 Licensing overview
* 9 References

## Make-based

* GNU make, a `make` implementation with a large set of extensions
* make, a 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, follows the concept of `make` but with additional syntax features[1]

## Make-incompatible

* Apache Ant, popular for Java platform development and uses an XML file format
* Apache Buildr, historic 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, and others
* 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 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 language Haskell
* Dub, the official package and build manager of the D Language
* dale,[2] a D build tool
* 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, a build management tool
* 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 more features like a reliable incremental build
* Grunt, a build tool for front-end web development
* Gulp, a build tool for front-end web development
* IncrediBuild, a suite of grid computing software for compiling and building software
* Leiningen, a tool providing commonly performed tasks in Clojure projects, including build automation
* Mix, the Elixir build tool
* 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
* Perforce Jam, a build tool by Perforce, inspired by Make
* Qt Build System
* Rake, a Ruby-based build tool
* rez,[3] a C/C++ 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 to test and benchmark.
* tinyrick,[4] a Rust build tool
* vast,[5] a shell build tool
* 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).

* 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.[6] CMake is also directly used by some IDE as Qt Creator,[7] KDevelop and GNOME Builder.[8]
* GNU Build System (aka autotools), a collection of tools for portable builds. These in particular include Autoconf and Automake, cross-unix-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. It has been superseded by GN which generates files for ninja and other build systems.
* 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.[8]
* OpenMake Software Meister
* Premake, a Lua-based tool for making makefiles, Visual Studio files, Xcode projects, and more
* qmake

## Continuous integration

* AnthillPro, build automation with pipeline support for deployment automation and testing. Cross-platform, cross-language
* Apache Continuum \- discontinued
* Bamboo, continuous-integration software
* Bitbucket Pipelines and Deployments, continuous integration for Bitbucket hosted repositories[9]
* Buildbot, a Python-based software development continuous-integration tool which automates the compile/test cycle
* CruiseControl, for Java and .NET
* Go continuous delivery, open source, cross-platform
* GitLab (GitLab Runner), continuous integration and git server
* GitHub (GitHub Actions), free continuous integration service for open-source projects 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)
* LCFG
* NixOS Declarative configuration model
* OpenMake Software Release Engineer
* Otter
* Puppet (Ruby-based)
* Salt (Python-based)
* Rex (Perl-based)

## Package managers

A package manager is a meta-build tool capable of building many different projects using a subset of existing build tools, generally using a list or repository of build scripts called "packages".

* Pkgsrc, Portage, MacPorts and other package managers derived from the BSD Ports Collection.
* 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

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.  | Discontinued
Bamboo  | continuous integration  | Trialware
Bazel | BUILD/Starlark, a Python-like DSL  | Apache License 2.0
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
Collective Knowledge Framework | Python scripts with JSON API and JSON meta-description  | New BSD License
Continuum | ?  | Apache License 2.0
CruiseControl | XML | BSD-style license
Dub | JSON, SDL | MIT License
FinalBuilder  | graphical IDE with support for Ant/NAnt, MSBuild, JScript, VBScript, IronPython, PowerShell  | Trialware
Gradle | Groovy-based DSL; Kotlin-based DSL  | Apache License 2.0
Jenkins | continuous integration  | MIT License
Homebrew | Ruby | Simplified BSD License
Leiningen | Clojure  | Eclipse Public License
make | uses Makefile  | Same as the bundling OS
Maven | Project Object Model  | Apache License 2.0
Meson build system  | custom DSL  | Apache License 2.0
MPW Make | ?  | Freeware
MSBuild | XML | MIT License
NAnt | XML | GNU GPL
nmake  | uses Makefile  | Freeware
Open Build Service | uses various package and image description formats (spec, dsc, ARCH, kiwi)  | GNU GPL
Perforce Jam | uses Jamfile  | Discontinued
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)  | Trialware
Visual Build | XML | Trialware
Waf | Python | New BSD License

## References

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
2. ↑ "dale: a paranoid D task runner". April 12, 2023. https://github.com/mcandre/dale.
3. ↑ "rez: C/C++ task runner". April 18, 2023. https://github.com/mcandre/rez.
4. ↑ "tinyrick: a freeform Rust build system". April 12, 2023. https://github.com/mcandre/tinyrick.
5. ↑ "vast: a build tool for shell scripts". April 8, 2023. https://github.com/mcandre/vast.
6. ↑ "cmake-generators(7) — CMake 3.11.1 Documentation". https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html.
7. ↑ "Setting Up CMake - Qt Creator Manual". http://doc.qt.io/qtcreator/creator-project-cmake.html.
8. ↑ 8.0 8.1 "GNOME Builder Development Environment Picking Up Many Features For GNOME 3.28 - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=GNOME-Builder-3.28-Work.
9. ↑ https://confluence.atlassian.com/bitbucket/build-test-and-deploy-with-pipelines-792496469.html Cross-platform

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/List of build automation software. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:List_of_build_automation_software&oldid=668311"