我在 Makefile 中有 5 个标签:
all: label1 label2 label3 label4 last_label
我想last_label
最后完成,我想使用make -j
. 如果我使用.NOTPARALLEL
,它将使所有这些NOTPARALLEL
,关于如何做到这一点的任何建议?
如果last_label
需要最后运行的原因是它需要来自其他标签的数据,那么最好的方法是说明make
该依赖关系:
all: last_label
last_label: label1 label2 label3 label4
如果没有真正的依赖项(即,如果您不想last_label
在其他一项更改时重新构建),并且如果您使用的是 GNU Make,则可以将它们指定为“仅订购”依赖项——make
将只是确保它们在last_label
构建之前存在:
all: last_label
last_label: | label1 label2 label3 label4
创建一个目标,指定可以并行执行的四个目标并将其包含last_label
在all
目标中:
intermediate: label1 label2 label3 label4
all:
$(MAKE) intermediate
$(MAKE) last_label
intermediate
这将并行执行其中指定的目标intermediate
,但last_label
会连续强制执行。
(注意前面的前导空格$(MAKE)
是一个TAB
字符。)