我是GNU Autotools的常用用户(主要是Autoconf,偶尔也是Libtool).我正在开展一个可移植性将成为关键点的项目.然而,团队的其他成员只是不习惯使用m4.我得到这个在我的收件箱从不是一个,而是四个人:
无论如何,也许有人可以推荐基于Python或PHP的东西?我正在研究一棵更大的树的C端; 我可以肯定会出现Python或PHP 5,因为它们是先决条件.
我有机会被投票,但我必须承认,遗憾的是,没有真正的替代品.CMake,SCons,bjam很不错,但是,当涉及到认真的工作时...很明显autotools是优越的,不是因为CMake不能做同样的事情,而是因为它更难以这样做.
例如,CMake是autotools最受欢迎的替代品,它有以下缺点:
不支持gettext.当您需要管理大量翻译和翻译的源代码时,这可能是一个真正的问题.
不支持卸载目标.发现无法卸载已安装的程序是非常不愉快的.
没有自动生成两个共享和静态库.
文档非常有限而且很糟糕.
等等.
还有很多其他要点.不幸的是,autotools没有真正高质量的替代品.另一方面,如果您在Windows 和 Visual Studio 上进行开发,则无法使用自动工具,您需要选择提供此类工具的CMake.
我在SCons上取得了很大的成功.它是用Python构建的,构建脚本实际上是Python脚本本身,它提供了大量的表达能力.来自网站:
SCons是一个开源软件构建工具 - 即下一代构建工具.将SCons视为经典
Make
实用程序的改进,跨平台替代,具有类似于autoconf/automake
和编译器缓存的集成功能,例如ccache
.简而言之,SCons是一种更简单,更可靠,更快速的软件构建方式.
我听说过有关CMake的好事,试图解决同样的问题.这是维基百科的文章
有很多不同的替代Makefile生成器和构建系统:
CMake的
scons的
WAF
Boost Build(又名BJam,C++)
也可用,但不严格针对C/C++:
Premake
Ant(用于Java)
耙子(用于Ruby)
(当然,我只是不知道所有......)
但是在列出这些之后,autotools具有不需要对最终用户有任何其他依赖性的巨大优势.配置脚本仅由开发人员生成一次,并且在用户端不需要任何特殊内容,因为它是一个shell脚本.必须先安装上面列出的工具,然后才能构建源代码,甚至可能还有自己的依赖项.
如何简单地使用Make和pkg-config?
这是一个Makefile模板,可以帮助您入门.
越少人越少.