GNU make、NMake、Autotools 等传统构建工具,它们大都历史悠久、使用广泛、稳定可靠,但难用、不够智能,它们在使用场合也有很大的局限性。
SCons
SCons 是一个优秀的编译工具,脚本可以用python书写,不过距离构建还有一些差距:项目小的话还好,规模一大,依赖分析速度急速下降,而且自动配置功能很弱 (跨平台构建能力不足)。
Waf
对 waf和 Cmake的了解都来自同一条消息: KDE4 将采用 CMake来替换 autotools(KDE4也曾考虑过 SCons)。Waf尝试解决 SCons所暴露出的一些问题。和 SCons一样,Waf使用 Python语言作为构建脚本。可读性、可维护性和便利性当然没的说。但个人感觉没有premake简洁。
Jam/Boost.Jam
跨平台工具,Boost 用 jam来维护整个库的编译和测试。
没有深入使用过,没有特别的杀手锏,最初的目标是取代 make 工具。没有自动配置功能,能适应简单的构建任务。我个人感觉它的语法同样很不直观。
CMake
CMake 的语法比较简单,比Autotools 等传统工具构建的步骤要少很多,目前比较成熟。但CMake采用的则是一个自定义的格式,劣势也十分明显。
premake
premake采用了业界口碑最好,代码简单优美的lua语言:灵活、优美、知识复用好。虽然他是开源的但目前作者只有一个,更新的较慢,不过感觉它的前途很好,可扩展性很强。比cmake简单。
大家可以根据自己的爱好,选择自己喜欢的工具。