Auto Build

XT -- A Bundle of Program Transformation Tools

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:

  1. 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.
  2. 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 DailyBuildSystem).

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:


  • 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 for examples.