Build-Tool Homepage

Build-tool is a script that helps with maintaining develop environments if complex dependencies have to be met. It makes it possible to run the builds in a reproducable way.

A build is described by a recipe. A recipe is the collection of everything needed to perform a build. It controls every aspect of the build by separating the users environment from the actual build environment as much as possible.

The tool brings a collection of recipes. They are mainly kde related because that is what i use the script for. But it could easily compile the xorg modules or gnome or the linux kernel if someone wrote the recipe.

Why another build tool

Before we delve into the details i want to lay down the reason why i started a new script instead of working on kdesvn-build . First and foremost one of the main design choices of kdesvn-build is the one script rule. It is one big script by design. To make it easier to distribute it. My requirements clearly showed we would end up with one freaking big script.

The requirements i have are:

  • Support different version control systems (svn, git, git-svn). Make it easy to add others
  • Support different build systems (cmake, autoconf, custom). Make it easy to add others.
  • Support recipes. It should be able to build more than just kde trunk.
  • Make it possible to control the complete build environment from the recipe file. It should be easy to grasp from the file how to reproduce the build manually. I want to document the build that way.
  • Make it possible to plugin additional custom commands.
  • Make the build environment accessible with the shell.

Ressources

Rubyforge Project

The project is hosted on rubyforge. The following ressources are available.

The Build-Tool Homepage
Homepage
The Build-Tool Newsfeed
News Feed

Comments

Ruby tools that have the same goal: autobuild and autoproj

You may want to look into autobuild and autoproj, which have the same goals [and are stable for a year or so now]. autobuild is really describing a build autoproj uses autobuild to make a more meta-project approach Documentation: http://doudou.github.com/autoproj http://doudou.github.com/autobuild Both are available on github and as gems on gemcutter I'd rather have us join efforts ;-)