Autoconf和Autotools的替代品?

Tim*_*ost 54 c autoconf autotools

我是GNU Autotools的常用用户(主要是Autoconf,偶尔也是Libtool).我正在开展一个可移植性将成为关键点的项目.然而,团队的其他成员只是不习惯使用m4.我得到这个在我的收件箱从不是一个,而是四个人:

m4不是lisp,该死!

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

Art*_*yom 47

我有机会被投票,但我必须承认,遗憾的是,没有真正的替代品.CMake,SCons,bjam很不错,但是,当涉及到认真的工作时...很明显autotools是优越的,不是因为CMake不能做同样的事情,而是因为它更难以这样做.

例如,CMake是autotools最受欢迎的替代品,它有以下缺点:

  • 不支持gettext.当您需要管理大量翻译和翻译的源代码时,这可能是一个真正的问题.
  • 不支持卸载目标.发现无法卸载已安装的程序是非常不愉快的.
  • 没有自动生成两个共享和静态库.
  • 文档非常有限而且糟糕.

等等.

还有很多其他要点.不幸的是,autotools没有真正高质量的替代品.另一方面,如果您在Windows Visual Studio 上进行开发,则无法使用自动工具,您需要选择提供此类工具的CMake.

  • 人们常常忽略了Autotools用m4编写的原因.它是用m4编写的,因此可以在_pure shell_中生成配置脚本,以便可以定位任何UNIX平台.另一方面,CMake针对任何有CMake的东西.现在哪个更常见?CMake还是Bourne Shell?我倾向于说Bourne Shell.它也不是Windows忽略提供一个像样的shell的Autoconf错误的作者. (15认同)
  • 你说的都是真的!! 如果你坚持使用Windows/Linux x86/Mac OS X**SCons**和**CMake**看起来比自动工具更简单.但如果你来到一个不寻常的平台,你会遇到很多问题...... (4认同)

Gre*_*ill 38

我在SCons上取得了很大的成功.它是用Python构建的,构建脚本实际上是Python脚本本身,它提供了大量的表达能力.来自网站:

SCons是一个开源软件构建工具 - 即下一代构建工具.将SCons视为经典Make实用程序的改进,跨平台替代,具有类似于autoconf/automake和编译器缓存的集成功能,例如ccache.简而言之,SCons是一种更简单,更可靠,更快速的软件构建方式.


epa*_*tel 36

我听说过有关CMake的好事,试图解决同样的问题.是维基百科的文章

  • 谢谢,看起来Cmake将完全满足我的需求.这些天,如果我甚至是'带有火把和干草叉的'autoconf'村民出现在我的办公桌上: (21认同)

rai*_*mue 18

有很多不同的替代Makefile生成器和构建系统:

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

  • Premake
  • Ant(用于Java)
  • 耙子(用于Ruby)
  • (当然,我只是不知道所有......)

但是在列出这些之后,autotools具有不需要对最终用户有任何其他依赖性的巨大优势.配置脚本仅由开发人员生成一次,并且在用户端不需要任何特殊内容,因为它是一个shell脚本.必须先安装上面列出的工具,然后才能构建源代码,甚至可能还有自己的依赖项.

  • 那么,如果您在Windows上需要其他软件,那又有什么意义呢?如果你安装python或一些shell没有区别. (7认同)

hen*_*dry 14

如何简单地使用Makepkg-config

这是一个Makefile模板,可以帮助您入门.

越少人越少.

  • Makefile模板不支持自动依赖,这是_really_ nice. (3认同)
  • 不是我的意思.我的意思是从头文件之间的源代码生成的内部依赖关系,就像GCC一样.一旦你弄清楚它是如何做的并不是特别难,但它可能有点痛苦. (3认同)
  • 喜欢那个gcc -MM -MG -MT的东西?https://github.com/dontcallmedom/widlproc/blob/master/Makefile#L102 (2认同)
  • 是的,确实如此。:)将其添加到您的makefile模板中实际上是+1了 (2认同)