views:

52

answers:

2

I have an application in which we use a hand-made build system.The reason for this is portability: the application should be portable on Linux/Mac/Windows.

There are some port-specific files that are not updated by the default build system.

What I do now is update the files manually or have a script do this. However, I am thinking of switching to cross-platform build system like cmake or scons.

Are there associated problems regarding portability? Will it pay in long run? and if so, what should be my choice: "cmake", "scons" or some other?

+1  A: 

Are there associated problems regarding portability?

Only if you continue to have "port-specific files".

Will it pay in long run?

Off-the shelf is cheaper than hand-built. Period. You should be very, very reluctant to hand-make anything. Always download first, rarely customize, and build new only when it's impossible to press an existing tool into service.

what should be my choice: "cmake", "scons" or some other?

It barely matters. You can toss a coin now.

You can download both and try both. They're pretty easy to learn.

After learning them, you can then toss a coin.

The important thing is to throw away your hand-made build system as quickly as you can. In order to do that you have to completely learn the new one. Many folks refuse to completely learn the new one. They half-learn the new one and then continue to claim the old one was somehow "better".

Completely learn the new one. Completely delete the old one. Don't look back.

S.Lott
thank you for your answer!!I agree,half learnt thing is a half-hearted approach which rarely succeeds, but do your views change if the application needs to portable for embedded devices with WINCE or Nintendo DS
Neeraj
I used to make Sonars and Radars for the military. No. Nothing will change my answer. Always use off-the-shelf first. Customize rarely and build unique tools reluctantly.
S.Lott
I trust your experience :), thanks once again!!
Neeraj
+1  A: 

I choose cmake, because it can generate XCode projects. The docs are not that great, but there are plenty users out there, so you can find solutions to problems using google fairly easily. It has soma packaging support too, which can be handy.

teki