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?
Only if you continue to have “port-specific files”.
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.
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.