有希望的替代品吗?
我已经使用了make和makefile很多年了,尽管这个概念
听起来不错,但实现方面还是有待改进的。
有没有人发现任何好的替代方法,而不会使其过于复杂
问题?
解决方案
回答
Ruby的make系统称为rake:http://rake.rubyforge.org/
看起来很有前途。
总是有Ant:http://ant.apache.org,我个人觉得这很可怕。但是,它是Java开发的实际标准。
回答
签出SCons。例如,《毁灭战士3》和《 Blender》就利用了它。
回答
我建议使用Rake。这是我找到的最简单的工具。
但是,如果我们不是Ruby,那么我使用过的其他好工具是:
- AAP(Python)
- SCons(Python)
- Ant(Java,XML配置,非常复杂)
回答
这取决于我们要执行的操作。如果只需要make样式的目标依赖项和命令调用,那么Make实际上是完成任务的更好工具之一。 :-) Rake非常好,但在某些简单情况下可能很笨拙。 Ant当然是冗长的城市,但是它对构建类似Java的语言(包括Scala和Groovy)提供了更好的支持。而且,Ant随处可见。这就是我使用它的主要原因。由于它在Windows上始终如一地工作,因此它实际上比Make跨平台更多。
如果我们希望对类似Java的库进行依赖管理,则可以选择Maven,但我个人更喜欢Buildr。更快,更容易自定义(基于Rake)。不幸的是,它还没有Maven普及。
回答
我有很多朋友发誓CMake进行跨平台开发:
http://www.cmake.org/
这是用于VTK的构建系统(除其他外),这是一个具有跨平台Python,Tcl和Java绑定的C ++库。我认为,使用这么多功能,这可能是最简单的事情。
我们可以随时尝试使用标准的自动工具。如果仅在Unix上运行并且坚持使用C / C ++,则Automake文件非常容易组合在一起。集成更加复杂,并且自动工具远非最简单的系统。
回答
一些GNOME项目已迁移到waf。
它像Scons一样是基于Python的,但是也是独立的-因此,无需将其他开发人员安装我们喜欢的构建工具,只需将独立的构建脚本复制到项目中即可。
回答
我不确定我们在这里问的是正确的问题。
我们是否经过简化制作?在这种情况下,我们需要找一个非常熟悉make的人来创建一系列(M | m)akefile,以简化问题。
还是我们想研究基础技术?我们是否要强制执行代码设计中内置和强制执行的按合同设计类型的体系结构?或者可能是语言本身,例如Ada及其规范(接口)和主体(实现)的概念?
我们所追求的方向肯定会影响该问题的潜在结果?
基本上,仅从真正发生变化的组件构建系统的新方法,而不是采用通过设计内置这种机制的新技术。
抱歉,这不是直接答案。只是想尝试让我们评估我们想朝哪个方向走。
干杯,
抢
回答
在考虑了很多替代方案之后,我仍然更喜欢make。当我们通过编译器或者类似fastdep之类的工具自动生成依赖项时,没有什么可做的。特别是,我不希望将构建脚本与实现语言联系在一起,并且当有更多可读性更高的替代方法时,我不喜欢用XML编写内容。虽然可以使用公开通用语言的工具,但不能使用另一种解释语言(afaik)。 Make有什么问题?可能会吸引我们关于脱离品牌的观点。
/艾伦