我有一个调用多个其他makefile的makefile.
我想将-j param传递给其他makefile调用.
像(make -j8)这样的东西:
all:
make -f libpng_linux.mk -j$(J)
Run Code Online (Sandbox Code Playgroud)
其中$(J)是-j8的值8.我绝对发誓我以前做过这件事,但我无法找到我的榜样.
$(MAKEFLAGS)似乎包含--jobserver-fds = 3,4 -j,无论-j2还是-j8
编辑:可能的解决方案
将很快发布这个答案.
这似乎是一个不用担心的解决方案.调用主makefile时包含-j8.对make的子调用应该如下所示:
all:
+make -f libpng_linux.mk -j$(J)
Run Code Online (Sandbox Code Playgroud)
注意make前面的"+".我注意到当我尝试并行构建时发出警告:make [1]:警告:jobserver unavailable:使用-j1.在父制定规则中添加"+".
只有某些标志会进入$(MAKEFLAGS)。 -j不包括在内,因为子公司相互沟通以确保发生适当数量的作业
另外,您应该使用$(MAKE)而不是make,因为$(MAKE)它将始终评估为正确的可执行文件名称(可能不是make)。
| 归档时间: |
|
| 查看次数: |
12798 次 |
| 最近记录: |