toolchain
{{Short description|A group of tools used in sequence to build software}}
A toolchain is a set of software development tools used to build and otherwise develop software. Often, the tools are executed sequentially and form a pipeline such that the output of one tool is the input for the next. Sometimes the term is used for a set of related tools that are not necessarily executed sequentially.{{cite web
| url = http://www.nongnu.org/avr-libc/user-manual/overview.html
| title = Toolchain Overview
| date = 2012-01-03 | accessdate = 2013-10-21
| website = nongnu.org
| url = http://elinux.org/Toolchains
| title = Toolchains
| date = 2013-09-08 | accessdate = 2013-10-21
| website = elinux.org
| title = Tool Chains in Agile ALM Environments: A Short Introduction
| date = 2015-10-29 | doi=10.1007/978-3-319-26138-6_40
| volume = 9416
| pages=371–380
| series = Lecture Notes in Computer Science
| last1 = Imran
| first1 = Saed
| last2 = Buchheit
| first2 = Martin
| last3 = Hollunder
| first3 = Bernhard
| last4 = Schreier
| first4 = Ulf
| isbn = 978-3-319-26137-9
}}
A relatively common and simple toolchain consists of the tools to build for a particular operating system (OS) and CPU architecture; consisting of a compiler, a linker, and a debugger. With a cross-compiler, a toolchain can support cross-platform development.
For building more complex software systems, many other tools may be in the toolchain. For example, for a video game, the toolchain may include tools for preparing sound effects, music, textures, 3-dimensional models and animations, and for combining these resources into the finished product.
See also
{{Portal|Computer programming}}
- {{Annotated link|Buildroot}}
- {{Annotated link|Debian build toolchain}}
- {{Annotated link|DevOps toolchain}}
- {{Annotated link|Software framework|Framework}}
- {{Annotated link|Library (computing)|Library}}
- {{Annotated link|GNU toolchain}}
- {{Annotated link|LLVM}}