FACTOID # 143: If someone you know died from falling out of a tree, you’re probably Brazilian.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Build Automation

Build Automation is the act of scripting or automating the process of turning computer source code into binary code. This Automated Build is in contrast to a manual build process where a person has to perform multiple, often tedious and error prone tasks. It involves automating a wide variety of tasks that a software developer will do in their day-to-day activities including things like packaging binary code, runing tests and deployment to production systems. The goal of this automation is to create a one-step process for turning source code into a working system. This is done to save time and to reduce errors.

Contents

[edit]

Types of Automation

[edit]

A command line interface or CLI is a method of interacting with a computer by giving it lines of textual commands (that is, a sequence of characters) either from keyboard input or from a script. ... Continuous integration is a software engineering term describing a process that completely rebuilds and tests an application frequently. ... Continuous integration is a software engineering term describing a process that completely rebuilds and tests an application frequently. ... Revision control is an aspect of documentation control wherein changes to documents are identified by incrementing an associated number or letter code, termed the revision level, or simply revision. It has been a standard practice in the maintenance of engineering drawings for as long as the generation of such drawings...

Best Practices

  • Keep the build file at the root of the project
  • Use consistent style and conventions
  • Don't Repeat Yourself (DRY)
  • Provide good help (use Ant/NAnt descriptions)
  • Manage dependencies properly
  • Use per-User properties to allow people to override defaults such as database logins or directory locations
  • Keep the build self-contained
  • Keep it all in source control
[edit]

Dry may refer to: Dry, an album by PJ Harvey. ...

Build Automation Software

  • Ant, which is popular for Java development and uses an XML file format.
  • make, a classical Unix build tool
  • GNU Build Tools, a collection of tools for portable builds
  • cook, a very powerful tool with a C like syntax.
  • dmake (distributed make), which is used in the build process for some Sun Microsystems software, including OpenOffice.org and Solaris.
  • Jam, which is a generally enhanced, ground-up tool which is similar to make.
  • Apache Maven, a Java tool for management project and automated software build.
  • Mk - developed originally for Version 10 Unix and Plan 9, said to have "improved upon make by removing all the vowels from the name", and introducing a completely new syntax that many consider to be easier to read and more powerful. It has been ported to Unix as part of plan9port.
  • MPW Make -- Developed for Mac OS Classic and loosely similar to but not compatible with Unix make; it was designed with somewhat more complicated dependency syntax to allow for resource files. Mac OS X comes with both GNU make and BSD make. Available as part of the Macintosh Programmer's Workshop as a free, unsupported download from Apple.
  • PBS - Open Source - A Make replacement written in Perl featuring hierarchical builds, dependency graph, node triggers, Perl syntax for PBSfiles, shell or Perl build actions.
  • Module::Build, which is a Perl module for the building and installation of other Perl modules. It improves upon the existing ExtUtils::MakeMaker module, which actually uses make to do the building.
  • NAnt, a tool similar to ant for the .NET framework
  • MSBuild, the Microsoft Build Engine
  • Rake, a Ruby-based build tool.
  • SCons, which is based around the Python programming language, and integrates a broader set of features than make, with integrated functionality similar to autoconf/automake. It is descended from a Perl build driver called Cons.
  • CMake, which is a cross platform make. It is designed to be used in conjunction with the platform specific build environment.
  • nmake -- Bell Labs nmake overcomes many limitations inherent in make, providing fully integrated support for viewpathing, dynamic dependency management, and state based execution. Forked into two versions after the AT&T trivestiture, a research version from AT&T Labs and a supported Lucent Bell Labs version.
  • OMake, an OCaml-based tool with Make-like syntax but a larger set of built-in features.
  • Speedy Make XML based make utility, very easy to write.
  • PyBuild, a build tool for Python
  • OpenMake, a commercial enterprise build management tool
[edit]

Apache Ant is a software tool for automating software build processes. ... The Java platform is the name for a computing environment, or platform, from Sun Microsystems which can run applications developed using the Java programming language and set of development tools. ... The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. ... In computer programming, make is a utility for automatically building large applications. ... GNU Build Tools The GNOME project is using a number of standard GNU tools for building on multiple architectures. ... cook is a utility that automates the process of converting files from one form to another, doing dependency tracking and invoking external programs to do additional work as needed. ... Wikibooks has a book on the topic of C Programming The C programming language (often, just C) is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ... Sun Microsystems, Inc. ... OpenOffice. ... Solaris is a computer operating system developed by Sun Microsystems. ... Perforce Jam is an open-source build system developed by Christopher Seiwald of Perforce Software. ... Maven is a software tool for Java programming language project management and automated software build. ... Java (Indonesian, Javanese, and Sundanese: Jawa) is an island of Indonesia and the site of its capital city, Jakarta. ... MK may stand for: Air Mauritius: IATA airline designator Gospel of Mark Mario Kart, a Nintendo racing video game series megakelvin, an SI unit of temperature Milton Keynes Missionary Kids MK electric, a major manufacturer of electrical goods Morse-Kelley set theory Mortal Kombat, a popular fighting video game series... Tenth Edition Unix, also known as Version 10 Unix or V10, was the last version of the Research Unix operating system developed and used internally at Bell Labs. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... Plan 9 from User Space (aka plan9port) is a port of many Plan 9 libraries and applications to Unix-like operating systems. ... MPW version 3. ... Original 1984 Mac OS desktop Current 2005 Mac OS X desktop Mac OS, which stands for Macintosh Operating System, is Apple Computer’s name for the first operating systems for Macintosh computers. ... A resource, also referred to as system resource, is any physical or virtual system component of a computer system with limited availability. ... Mac OS X (officially pronounced Mac Oh-Ess Ten) is a line of open source graphical operating systems, with proprietary higher level API layers, developed, marketed, and sold by Apple Computer, the latest of which is pre-loaded on all currently shipping Macintosh computers. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... The Microsoft . ... Rake is a software build tool. ... Ruby is a reflective, object-oriented programming language. ... SCons is an open source software build tool. ... Python is an interpreted programming language created by Guido van Rossum in 1990. ... processing Autoconf is a tool for producing shell scripts that automatically configure software source code packages to adapt to many kinds of UNIX-like systems. ... Automake is a programming tool that produces portable makefiles for use by the make program, used in compiling software. ... Perl, also Practical Extraction and Report Language (a backronym, see below) is a dynamic procedural programming language designed by Larry Wall and first released in 1987. ... CONS, Connection-Oriented Network Service, is one of the two OSI stack network layer protocols, the other being CLNS (Connectionless Network Service). ... CMake is an extensible, open-source system that manages the build process in an operating system and compiler independent manner. ... Bell Laboratories (also known as Bell Labs and formerly known as AT&T Bell Laboratories and Bell Telephone Laboratories) was the main research and development arm of the United States Bell System. ... AT&T Labs is the research & development arm of American telecommunications giant, AT&T. AT&T Labs originated in 1996, when AT&T spun-off most of its Bell Labs research business as Lucent Technologies. ... In 1996, AT&T spun off its Systems and Technology units, along with the famous Bell Laboratories, to form a new company named Lucent Technologies (NYSE: LU). ... Python is an interpreted programming language created by Guido van Rossum in 1990. ...

References

Mike Clark: Pragmatic Project Automation, The Pragmatic Programmers ISBN:0-9745140-3-9 Michael Stephen Clark was a popular newspaper columnist in the 1970s and 1980s. ...

[edit]

See also


  Results from FactBites:
 
Building automation - Wikipedia, the free encyclopedia (1359 words)
Building automation is a programmed, computerized, "intelligent" network of electronic devices that monitor and control the mechanical and lighting systems in a building.
Lighting can be turned on and off with a building automation system based on time of day, or the occupancy sensors and timers.
Most building automation networks consist of a primary and secondary bus which contain programmable logic controllers, input/outputs and a user interface (also known as a human interface device).
  More results at FactBites »


 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m