Software build
Encyclopedia
In the field of computer software
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....

, the term software build refers either to the process of converting source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 files into standalone software artifact(s) that can be run on a computer, or the result of doing so. One of the most important steps of a software build is the compilation
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 process where source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 files are converted into executable code
Executable
In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU...

.

In software versioning, the build number is often used as a versioning identifier subordinate to, and more finely graded than, the version number. For example, various iterations of an application might be called "Acme FooWare 6.0", but in the "Help > About" dialog, the exact iteration will be identified with a longer, unique identifier that includes both the version number and the build number (for example, Acme FooWare 6.0.3.2246).

While for simple programs the process consists of a single file being compiled, for complex software the source code may consist of many files and may be combined in different ways to produce many different versions.

The process of building a computer program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

 is usually managed by a build tool, a program that coordinates and controls other programs. Examples of such a program are make, ant
Apache Ant
Apache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....

, maven
Apache Maven
Maven is a build automation and software comprehension tool. While primarily used for Java programming, it can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven serves a similar purpose to the Apache Ant tool, but it is based on different concepts and...

, SCons
SCons
SCons is a computer software construction tool that automatically analyzes source code file dependencies and operating system adaptation requirements from a software project description and generates final binary executables for installation on the target operating system platform...

 and Phing. The build utility needs to compile
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 and link the various files, in the correct order. If the source code in a particular file has not changed then it may not need to be recompiled (may not rather than need not because it may itself depend on other files that have changed). Sophisticated build utilities and linkers attempt to refrain from recompiling code that does not need it, to shorten the time required to complete the build. Modern build utilities may be partially integrated into revision control
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...

 programs like Subversion. A more complex process may involve other programs producing code or data for the build process.

Tiers of Software Builds: manual compiles on individual developer boxes (tier 1), manual compiles on shared build box (tier 2), automated daily compile (tier 3), automated daily install built using installation software (tier 4), automated daily install deployed to QA boxes (tier 5), and automated testing of the build and automatic creation of an install (tier 6).
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK