Table of Contents
Now that we've had a chance to see abuild in action for a simple case, it's time to go into more detail about how things fit together. In Section 3.2, “Basic Terminology”, we briefly defined the terms build item, build tree, and build forest. In this chapter, we will describe them in bit more detail and briefly introduce a number of concepts that apply to them.
A precise definition of build item would
state that a build item is any directory that contains an
Abuild.conf
. Perhaps a more useful
definition would say that a build item is the basic object that
participates in abuild's object-oriented view of a software
build. A build item provides some service
within a build tree. Most build items build some kind of code:
most often a library, executable, or Java archive. Build items
may provide other kinds of services as well. For example, a
build item may implement a code generator, support for a new
compiler, or the ability to make use of a third-party software
library. In addition, a build item may have certain attributes
including a list of dependencies, a list
of supported flags, information about what
types of platforms the build item may be built on, a list of
traits, and other non-dependency
relationships to other build items. Each of these concepts is
explored in more depth later in the document.
All build items that provide a service are required to have a name. Build item names must be unique within their build tree and all other build trees accessible to their build tree since the build item name is how abuild addresses a build item. Build item names consist of period-separated segments. Each segment may contain mixed case alphanumeric characters, underscores, and dashes. Build item names are case-sensitive.
The primary mechanism for describing build items is the
Abuild.conf
file. This file consists of
colon-separated key/value pairs. A complete description of the
Abuild.conf
file may be found in Chapter 15, The Abuild.conf
File. In the mean time, we will
introduce keys as they become relevant to our discussion.