将Gnu Make -j行为更改为个人忽略,但传递?

时间:2014-03-13 13:07:17

标签: makefile

我有一个makefile,它是一个3rdParty依赖构建器,所以它实际上只是去各种其他目录并使用各种标志运行cmake / make,以确保我项目的所有15-20个依赖项按我需要的方式编译。

在这里构建并行将真正帮助,(构建大约需要2个小时),但是我需要'make -jN'来不运行toplevel makefile并行,而是串行运行(各种3rdParty库都有内部依赖关系来满足)并将arg传递给内部makefile。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:2)

使用.NOTPARALLEL伪目标;来自文档:

  

`.NOTPARALLEL'

     
If `.NOTPARALLEL' is mentioned as a target, then this invocation of
`make' will be run serially, even if the `-j' option is given.
Any recursively invoked `make' command will still be run in
parallel (unless its makefile contains this target).  Any
prerequisites on this target are ignored.