Auto Build
XT -- A Bundle of Program Transformation Tools
Description
Compiling and installing software packages is often a time consuming and
complicated business. You have to read the installation instructions to
determine which steps are required for building and installing the software,
then you have to determine how to configure the system (indicate where
components such as libraries can be found and which compile flags should be
used). Finally, you have to execute configure, compile, and install tasks
manually. When you have to install the same software on multiple
architectures, you might come in the situation where you have to perform
these steps for each platform again. To make things even worse, this process
has to be repeated each time you want to install a new version of the
software package.
The "autobuild" software package tries to solve this problem by introducing
the notion of so called "build files" in which you can define how a
particular software system should be built on different platforms. The
"build" tool reads a build file, and builds the software package for you on
each platform you defined. It can perform the build processes on multiple
platforms in parallel, and it creates informative
HTML and textual log
files.
Two typical applications of autobuild are:
- Centralized management of software packages for multiple architectures. For instance, part of the software installed at the Transform.SEN1 research group of the CWI is controlled by build files. Once a new version of a package needs to be installed (or an installation needs to be performed again), a single call to build suffices. All build files are under CVS control to keep track of changes made to the files over time.
- Daily builds where the build tool is used to compile software under development on a daily basis. The generated HTML documentation gives access to the build log and helps locating errors in the daily build. (See http://www.cwi.nl/~daybuild/ for our daily builds).
Getting the Software
The autobuild package is open source and distributed as a gzipped tar file
named `autobuild-<version>.tar.gz', where <version> denotes the version of
the package. You can download the package at:
http://www.cs.uu.nl/~mdejonge/downloads/autobuild-0.4.11.tar.gz
Questions
- Is it possible to have localhost as a platform? How do I indicate that in the platforms file?
You can simply add an antry like '
myplatform="localhost"
'
in your platforms file.
- The README file has information about setting up the BuildFile? for one package, but does not explain how to set up a complete dailybuild environment. Would it be possible to provide a package with a template or a sample set-up?
AutoBuild is not a daily-build system by itself. Checkout
DailyBuildSystem for setting up a daily-build system with the dbs package.
At this moment you cannot use a template set-up. You can however use the '-g' switch to generate an initial Buildfile for a package and use
AutoBuild's `include' mechanism to import standard (shared) build configuration. See the Buildfiles at
http://www.cwi.nl/~daybuild/ for examples.