The Abuild Build System
Abuild is a scalable software build system that applies Object-Oriented principles to the build problem. It is powerful and flexible and helps ensure build integrity while simplifying the user's view of the build. Detailed documentation is available; see links below. Abuild is released under the terms of Version 2.0 of the Artistic License.
There is a SourceForge project for abuild. There you can find downloads, the tracker, and a wiki for abuild.
Current Release
A public release of abuild has not yet been made, but one is expected very soon. We are still tweaking the documentation. Once a release is made, it will be available from the download area, and this paragraph will be updated. (11/28/2007) The documentation links below point to a current development snapshot of the manual. Late chapters are still undergoing one more proofreading pass.
Sponsorship
The creation of abuild would not have been possible without the enthusiastic support of my employer, Argon ST. Argon not only recognized the important role of a strong build tool in contributing to the overall quality and reliability of its software, but saw the value of releasing it to the open source community in hopes of making an even broader contribution.
Shameless Plug: Abuild: Open Source Build System
-
- Tenth Dan Procrastinator
- Posts: 3055
- Joined: Fri Jul 18, 2003 3:02 am
- Location: Varies
- Contact:
Shameless Plug: Abuild: Open Source Build System
http://www.abuild.org/
-
- Tenth Dan Procrastinator
- Posts: 3055
- Joined: Fri Jul 18, 2003 3:02 am
- Location: Varies
- Contact:
Edit: VLSmooth: Added and underlined documentation linkjabber conversation with the primary abuild developer wrote:(04:44:25 PM) vlsmooth-jabber: Hi, I received some questions about abuild, from non-argon employees. Particularly:
"why write your own build system when there are 20 billion existing ones (open/free/paid/etc)?"
(omitted extraneous portions)
I remember there was documentation about investigating other alternatives, and why they didn't work. However, I can't find it
(04:46:38 PM) jberkenb-jabber: I don't know where such a document might have existed, but the bottom line is that we couldn't find anything that would do C, C++, and Java and work on UNIX, Windows, and vxWorks. Also, our explicit goal was to create something that would allow us to have a large, distributed collection of components with well-managed dependencies between them. In a lot of searching, I haven't found any other build systems that simultaneously meet all these requirements. I believe abuild looks at build from a more object-oriented perspective, which (again, to my knowledge) is unusual in the space of build tools.
(04:47:17 PM) jberkenb-jabber: Also, there aren't 20 billion existing ones. There are a handful, but not more than maybe 5 or 10 that play in both the C/C++ space and the Java space and work on multiple platforms.
(04:48:03 PM) jberkenb-jabber: Most of the commercial build tools are build management systems (like IBM BuildForge) or accelerators (like ElectricCloud) that go on top of existing build systems. Abuild *is* the build system.
(04:48:47 PM) jberkenb-jabber: Well, it's a good question. If the person really thinks there are so many, I'd be interested to see the list. Obviously I know he didn't mean 20 billion, but I don't think it's even fair to say that it's a crowded field.
(04:50:23 PM) vlsmooth-jabber: if you don't mind, I can quote some of your IM responses, or just let it die
(04:50:26 PM) jberkenb-jabber: I see one person mentioned Cons. I'm aware of Cons and SCons. They are two of the tools that come closest, and I've
actually thought about using them as a backend, but they completely don't have the same approach to large, component-based systems.
(04:51:01 PM) jberkenb-jabber: You can quote my responses if you'd like. I would encourage people to read the first chapter of the abuild documentation before making too much of a judgment.
(04:51:35 PM) jberkenb-jabber: I'm actually working on finalizing 1.0.rc1 right now, so there could be a version ready to download by the end of the day. Either way, the documentation on the website is, with the exception of the release date, what is going to be in 1.0.rc1.
Last edited by VLSmooth on Mon Dec 03, 2007 11:03 pm, edited 1 time in total.
-
- Tenth Dan Procrastinator
- Posts: 4891
- Joined: Fri Jul 18, 2003 3:09 am
- Location: San Jose, CA
The best free build system I've seen so far is Cruise Controlwhich wraps Ant. I'll read abuild's documentation later to see what it's all about and what makes it special.
SCons is a pile of crap. It's beautiful and elegant for very small scale projects, but as soon as you start mixing in compilers that aren't directly supported, multiple build types, and large numbers of components, the complexity of the build scripts exceeds the complexity of the actual code. It's also very slow.
-
- Tenth Dan Procrastinator
- Posts: 3055
- Joined: Fri Jul 18, 2003 3:02 am
- Location: Varies
- Contact:
We use abuild extensively with Cruise Control for Java testing. However, I'm not familiar with the specifics.quantus wrote:The best free build system I've seen so far is Cruise Controlwhich wraps Ant. I'll read abuild's documentation later to see what it's all about and what makes it special.
-
- Tenth Dan Procrastinator
- Posts: 3055
- Joined: Fri Jul 18, 2003 3:02 am
- Location: Varies
- Contact:
Regarding speed, The Quest for the Perfect Build System (blog article) definitely agrees with you. Scons and Visual Studio run on the order of a minute on the same test set make and Jam run in a few seconds.George wrote:SCons is a pile of crap. It's beautiful and elegant for very small scale projects, but as soon as you start mixing in compilers that aren't directly supported, multiple build types, and large numbers of components, the complexity of the build scripts exceeds the complexity of the actual code. It's also very slow.
Regarding abuild's speeds, I don't have an absolute metric. However, I know a very large and important body of code that used to take over 30 minutes to build with an internal version of recursive make now builds in less than 2 minutes with abuild. Granted, I'll admit our legacy make component is... less than ideal.