diff options
Diffstat (limited to 'tools/build-automation/introduction.nw')
-rw-r--r-- | tools/build-automation/introduction.nw | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tools/build-automation/introduction.nw b/tools/build-automation/introduction.nw new file mode 100644 index 000000000000..9e51864ec4b7 --- /dev/null +++ b/tools/build-automation/introduction.nw @@ -0,0 +1,82 @@ +% $Id: introduction.nw 2532 2012-08-03 06:31:47Z jkoshy $ +% +% The introduction to the build system. + +\part{The Build System}\label{part.intro} + +\chapter{Introduction}\label{chap.introduction} + +\section{Design Goals} + +\begin{goal} + The system should support build and testing our source tree, on the + target operating systems and machine architectures of our interest. +\end{goal} + +This is the primary design goal for the tool, its +\foreignphrase{raison d'\^etre}. + +\begin{goal} + The system should support building and testing our source tree on + non-native architectures (relative to the build host). +\end{goal} + +Builds on non-native machine architectures and operating systems are +would involve the use of virtual machines and CPU emulators. The +actual build will be done using \tool{make} or equivalent utility. + +\begin{goal} + The system should be easy to use. +\end{goal} + +Defining a build needs to be intuitive, and should utilize +pre-existing tools where possible. + +The number of new notations and file formats that a user needs to +learn should be kept to a minimum. + +Invoking a build should be simple. Sensible defaults should be used +to minimize the need for user input at the time of invocation. + +\begin{goal} + The system should be able to run entirely on a relatively power and + resource constrained system such as a laptop, i.e., without needing + a beefy build box, or architecture-specific hardware. +\end{goal} + +The ability to be able to work using a low power compute platform is a +necessity in the project's current development environment + +The need to be frugal in resource consumption rules out the use of +certain convenient but resource hungry implementation options. + +\begin{goal} + The system should work in ``offline'' mode, without requiring + external network access to function. +\end{goal} + +The intent is to be able to work in ``standalone'' mode, without +needing to contact a master server on the network. + +\begin{goal} + The system should allow a source tree that is in-development to be + built and tested, prior to a check-in. +\end{goal} + +This system is primarily a development aid, and not primarily a tool +for implementing continuous integration. + +\begin{goal} + The system should be easy to deploy, with the minimum of software + dependencies. +\end{goal} + +The fewer dependencies on third party packages, the easier it is to +support target operating systems. + +\begin{goal} + The utility should be easy to port to a new operating system. +\end{goal} + +This goal is meant to reduce the effort needed to support new +operating systems. |