Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Functions  



1.1  Version control  





1.2  Code quality  





1.3  Compilation  





1.4  Linking  







2 Build tools  





3 See also  





4 References  














Software build






العربية
Čeština
Deutsch
Español

Italiano
עברית


Português
Русский
Slovenčina


 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Insoftware development, a build is the process of converting source code files into standalone software artifact(s) that can be run on a computer, or the result of doing so.[1]

Functions

[edit]

Building software is an end-to-end process that involves many distinct functions. Some of these functions are described below.

Version control

[edit]

The version control function carries out activities such as workspace creation and updating, baselining and reporting. It creates an environment for the build process to run in and captures metadata about the inputs and output of the build process to ensure repeatability and reliability.

Tools such as Git, AccuRevorStarTeam help with these tasks by offering tools to tag specific points in history as being important, and more.

Code quality

[edit]

Also known as static program analysis/static code analysis this function is responsible for checking that developers have adhered to the seven axes of code quality: comments, unit tests, duplication, complexity, coding rules, potential bugs and architecture & design.[2]

Ensuring a project has high-quality code results in fewer bugs and influences nonfunctional requirements such as maintainability, extensibility and readability; which have a direct impact on the ROI for a business.[3]

Compilation

[edit]

This is only a small feature of managing the build process. The compilation function turns source files into directly executable or intermediate objects. Not every project will require this function.

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.

Linking

[edit]
An illustration of the linking process. Object files and static libraries are assembled into a new library or executable

Incomputing, a linker or link editor is a computer system program that takes one or more object files (generated by a compiler or an assembler) and combines them into a single executable file, library file, or another "object" file.

A simpler version that writes its output directly to memory is called the loader, though loading is typically considered a separate process.[4][5]

Build tools

[edit]

The process of building a computer program is usually managed by a build tool, a program that coordinates and controls other programs. Examples of such a program are make, Gradle, Ant, Maven, Rake, SCons and Phing. The build utility typically needs to compile 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. A more complex process may involve other programs producing code or data as part of the build process and software.

See also

[edit]

References

[edit]
  1. ^ "What is Build?". Techopedia. Retrieved 2020-04-04.
  • ^ "SonarQube™ software". Retrieved 4 January 2014.
  • ^ Muschko, Benjamin. Gradle in Action. Manning Pubns Co. ISBN 9781617291302.
  • ^ IBM OS Linkage Editor and Loader (PDF). IBM Corporation. 1972. Archived (PDF) from the original on 2020-03-06. Retrieved 2020-03-07.
  • ^ Barron, David William (1978) [1971, 1969]. "5.7. Linkage editors and consolidators". Written at University of Southampton, Southampton, UK. In Floretin, J. John (ed.). Assemblers and Loaders. Computer Monographs (3 ed.). New York, US: Elsevier North-Holland Inc. pp. 65–66. ISBN 0-444-19462-2. LCCN 78-19961. (xii+100 pages)

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Software_build&oldid=1219291236"

    Categories: 
    Software development
    Computer programming
    Hidden categories: 
    CS1 location test
    Articles with short description
    Short description is different from Wikidata
    Articles with excerpts
     



    This page was last edited on 16 April 2024, at 21:26 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki