Autoconf和Autotools的替代品?

我是GNU Autotools的用户(主要是Autoconf ,偶尔是Libtool )。 我正在进行一个项目,在这个项目中,可移植性将成为一个难点。然而,其余的团队与m4一起工作并不舒适。 我不是从一个人,而是从四个人那里收到的:

m4不是lisp,该死的!

无论如何,也许有人可以推荐一些基于Python或PHP的东西? 我正在做一个更大的树的C端; 我可以肯定,Python或PHP 5将会出现,因为它们是先决条件。

我听说过关于CMake的好东西,它试图解决同样的问题。 这里是维基百科的文章

我正在冒着被低估的机会,但是我必须承认,不幸的是,没有真正的自动工具的替代品。 CMake,SCons,bjam都不错,但是当涉及到严肃的工作时……很明显autotools是优越的,不是因为CMake不能做同样的事情,而是因为它更难以做到。

例如,CMake是自动工具最stream行的替代scheme,具有以下缺点:

  • 不支持gettext。 当您需要pipe理大量翻译和翻译源代码时,这可能是一个真正的问题。
  • 不支持卸载目标。 发现你不能卸载你安装的程序是相当不愉快的。
  • 没有自动构build共享库和静态库。
  • 文档是非常有限和不好的。

等等。

还有很多其他的问题。 不幸的是,自动工具没有真正的高质量替代品。 另一方面,如果你在Windows Visual Studio上开发,那么你不能使用自动工具,你需要select提供这种工具的CMake。

SCons取得了不错的成绩。 它是用Python构build的,构build脚本本身就是Python脚本,这给了很大的performance力。 来自网站:

SCons是一个开源软件构build工具,也就是下一代构build工具。 把SCons想象成一个经典的Make实用程序的改进的跨平台替代品,其集成function类似于autoconf/automake和编译器caching(如ccache 。 简而言之,SCons是构build软件的一种更简单,更可靠,更快捷的方式。

有很多不同的Makefile生成器和构build系统:

  • CMake的
  • scons的
  • WAF
  • Boost Build (又名BJam,C ++)

也可用,但不是严格的针对C / C ++:

  • Premake
  • Ant (Java)
  • Rake (Ruby)
  • (更确切地说,我只是不知道他们都…)

但是在列出这些之后,自动工具具有不需要对最终用户有任何其他依赖性的巨大优势。 configuration脚本只能由开发人员生成一次,因为它是一个shell脚本,所以在用户端不需要任何特殊的东西。 上面列出的工具必须在任何人build立你的源代码之前安装,他们甚至可能自己有依赖关系。

如何简单地使用Make和pkg-config ?

这里是一个Makefile模板 ,让你开始。

less就是更多的人。

一个更多的汽车*更换 – mk的configuration 。 文档可以在这里find

我看了CMake,看起来像一个很好的select,除非你正在交叉编译。 如果你正在做本地编译,你应该尝试一下

在Mozilla中创build了一个python版本 – pymake – 这大概支持跨平台的使用。

对于从ANT或Maven构buildC / C ++软件,您可能会对terp感兴趣。 它包括一个可移植的C ++编译器任务,可以在许多平台上与许多C ++编译器一起工作。