Buildtool

Welcome to the Buildtool project

Buildtool is a highly integrated shell based build infrastructure. It can be used in the development of any kind of software package, like standalone programs, shared libraries or documentation packages due to its modularity. Furthermore, it is completely free, licensed under the terms of the revised BSD license, which basically means that it suits perfectly free projects as well as commercial development.

Recent news

Current status

Posting date: 2nd January 2005

First of all, happy new year! But now, to the real news: a month ago, I posted a message in my journal detailing the current Buildtool status. I should have posted it here too, which is the most reasonable place if I expect people to read it. So here goes a copy/paste of it. BTW, since commenting is not supported here, feel free to post any replies in the original message in my blog:

Hmm, Buildtool... one of my pet projects, probably the one on which I've spent the most time working... and it was even starting to get some (few) popularity lately

But I must admit it. The code is, in its actual form, dead :-( It's unmanageable (shell scripting doesn't scale, you know) and breaks in many, many places. Just consider the following facts:

... plus a large etcetera. All in all, too many problems that can't be solved without doing very gross hacks or restarting the project from scratch. This is why I haven't touched the code since the beginning of the summer.

But... you know what? For some reason, I'm willing to rewrite it from scratch. Of course, using a real programming language. The choices I have in mind are ("obviously" ;-):

If I can't find any strong reason not to use C++, I'll stick to it. In fact, I've already written a bit of code (program detection) and it has been easy :-)

Oh, I listen, "How could build scripts be?". Well, I have XML in mind - something similar to Apache Ant. Otherwise I'll have to invent and write a parser for a custom language (ew, not funny). But that's something yet to decide.

Not in original post: I've been looking at Lua lately, a programming language used to "extend" Monotone. Looks like it could be a possible choice for scripting (though it doesn't fit very well my current idea of how scripts could look like).

Test Driven Development meets Buildtool

Posting date: 11th July 2004

Test Driven Development (TDD, for short) is a technique in which you write a test before adding a new feature. The test fails until the feature is properly implemented. Furthermore you end up with a complete regression suite for your application, so that you can easily check that new features don't break old ones.

As this sounds very interesting and is known to be a good development model, I'm rewritting the Testsuite (included in the Buildtool distribution file), to follow TDD principles. So far I've written twelve tests that check multiple parts of the program, and already fixed some bugs, thanks to them.

I think that the next version, 0.17, will be just a polished 0.16, with all bugs found by the tests fixed. Some features may come too, but not many (probably). Note that this is what I think now, and that my mind can change until it's published... ;-)

Buildtool 0.16 released

Posting date: 4th July 2004

Buildtool 0.16 released. This version includes lots of changes since the previous one. The major ones include preliminar support for work directories and a rewrite of bt_logic's core. There are also several small new features as well as many bug fixes.

Debian packages available

Posting date: 28th March 2004

Debian packages are now available, thanks to Bartosz Fenski. Check the downloads section for more information.