views:

493

answers:

15

There are so many different systems out there, what do you prefer? Using a system that is written in the same language like your own software?

I started with the famous Autotools-Collection once. Some years later I found and tried SCons and was amazed. It's so clean and easy in comparison to Autotools-stuff - but to have Python as a dependency for building a project is just a mess. At the moment I am embedding Ruby into my project and I am very confident with Rake.

So it's just another time choose the right one for the right job? What is your opinion?

+2  A: 

See also Which Build-/Configuration Management Tool?.

Pat Notz
There are so many questions - quite hard to see if something has been asked before. ;)
unexist
+1  A: 

I am partial to NAnt at the moment. It's XML based like Ant, but it runs on .NET and seems to be a bit more general. I also used to use SCons.

I tend to stick to a build system I know, regardless of the language I'm currently building for, unless dependencies matter a lot.

Daniel Bruce
+2  A: 

We use a combination of: FinalBuilder for the build script , Team City for Continuous Integration (that triggers FB by command line) and that's basically it. No need to see XML anymore, thank god.

Roy

RoyOsherove
+6  A: 

SCons

Iulian Şerbănoiu
I still use Scons wherever I can.
grieve
+3  A: 

Maven!

Eduard Wirch
love the maven now that i have used it in a few projects.but there is a steep learning curve.
David Medinets
+1  A: 

MSBuild is really nice with .NET, I've written a couple of extensions myself to help with using Continious Integration and the TFS 2008 Build Server.

The TFS 2008 build server is a bit finiky (or so I've found), nice and powerful, and because it's familiar with is MSBuild base it's easy to work it.

It can be a bit tricky to use for automated deployment to staging/ UAT environments

Slace
+3  A: 

Ant.

Since I use Eclipse to write Java programs, I found that Ant integrates very well. It's definitely a plus that I can package jar files for release, and generate zip files just as a snapsnot of the current project state.

coobird
+1  A: 

For the Ant people: Do you write your own tests and/or ships Ant with the frequently used tests? I know that Rake uses a similar design - similar to the one in the good old Makefile indeed. ;)

unexist
+2  A: 

Boost.Build (bjam). It is very light, I can include the source for it in the VCS tree -- all it needs is a C compiler which you presumably already have, as you are doing programming ;).

An older, yes similar tool called Perforce Jam is being used by Sybase. If a project of that size can use Jam, surely someone can use a more modern and recent clone without any problems.

It is very easy to use and it is supports a wide range of compilers/systems.

Terminus
+1  A: 

We really love the Ant and Ivy DM combination we've setup. Centralized build environment so changes flow to all our applications automatically. Has been a real time saver for us.

Bradley Beddoes
+1  A: 

CruiseControl hooked into Nant and MSBuild.

All we have to do is commit, and if it builds successfully and passes all our tests it gets automagically made ready for deployed to UAT/live.

See this answer for a more detailed explanation of our build/deployment process.

Sam Wessel
+1  A: 

Ant + custom scripts. Maven has it's uses but also is often the cause of major pain, especially when using >1 module/artifact for your project.

Ultimately it's about using the appropriate tool for the job in hand.

fiddlesticks
+2  A: 

I have yet to see anything as flexible and easy to read as Rake. To all those who use ant + custom scripts, you could have one rake script to deal with everything.

It easily does the obvious things a build system should do, and you can always write ruby code if you need to do something more complex.

Herge
Same here. Do you write all your tests by yourself? I use a mix of mkmf and Rake functions.
unexist
+1  A: 

UppercuT with CruiseControl.NET!

http://code.google.com/p/uppercut/

Some good explanations here: UppercuT

ferventcoder
A: 

xargs is one favorite