CMake is another useful tool. It has fewer dependencies than SCons and is significantly faster. The only downside is that CMake scripting has a steeper learning curve because it is so different than other build systems. On the other hand, it allows one to configure and build portable code across Windows, OS X, Linux, and other flavors of Unix.