Promising alternatives to make? [closed]

2019-01-21 03:39发布

I've been using make and makefiles for many many years, and although the concept is sound, the implementation has something to be desired.

Has anyone found any good alternatives to make that don't overcomplicate the problem?

12条回答
不美不萌又怎样
2楼-- · 2019-01-21 04:21

I recommend using Rake. It's the easiest tool I've found.

Other good tools I've used, though, if Ruby's not your thing, are:

  • AAP (Python)
  • SCons (Python)
  • Ant (Java, config in XML, pretty complex)
查看更多
Lonely孤独者°
3楼-- · 2019-01-21 04:21

doit is a python tool. It is based in the concepts of build-tools but more generic.

  • you can define how a task/rule is up-to-date (not just checking timestamps, target files are not required)
  • dependencies can be calculated dynamically by other tasks
  • task's actions can be python functions or shell commands
查看更多
狗以群分
4楼-- · 2019-01-21 04:27

Be aware of the ninja build tool (v1.8.2 Sept 2017) which is influenced by tup and redo.

The build file generator cmake (e.g. for Unix Makefiles, Visual Studio, XCode, Eclipse CDT, ...) can also generate ninja build files since version 2.8.8 (April 2012) and, afaik, ninja is now even the default build tool used by cmake.

It is supposed to outperform the make tool (better dependency tracking and is also parallelized).

cmake is an already well-established tool. You can always choose later the build tool without modifying your configuration files. So if a better build is developed in the future which will be supported by cmake you can switch to it conveniently.

Note that for c/c++ improving compilation time is sometimes limited because of headers included through the preprocessor (in particular when using header-only libs, for instance boost & eigen) which hopefully will be replaced by the proposal of modules (in a technical review of c++11 or eventually in c++1y). Check out this presentation for details on this issue.

查看更多
叼着烟拽天下
5楼-- · 2019-01-21 04:30

check out SCons. For example Doom 3 and Blender make uses of it.

查看更多
【Aperson】
6楼-- · 2019-01-21 04:30

Ruby's make system is called rake: http://rake.rubyforge.org/

Looks quite promising.

There's always Ant: http://ant.apache.org, which I personally find horrendous. It's the de-facto standard for Java development, however.

查看更多
欢心
7楼-- · 2019-01-21 04:36

FlowTracer from RTDA is another good choice that I have seen used commercially in a large scale environment (tens of thousands of jobs): http://www.rtda.com/flowtracer-design-flow-infrastructure-software

It has a GUI which shows the dependency graph with color-coded boxes for jobs and ovals for files. When the number of jobs and files gets high, a GUI-based tool like FlowTracer is pretty much essential.

The initial setup cost is higher than Make. There's a learning curve for setting up your first flow using it. After that, it gets quicker.

查看更多
登录 后发表回答