gnu 为组进行并行作业,但在组内按顺序进行

问题描述 投票:0回答:1

我是“makei -j”的忠实粉丝,但我正在寻找这种情况下的解决方案。我想要组的并行作业(例如不同的 make 目标),但是(如果一个组别名为许多子目标)它应该在组内按顺序进行。

(类似的主题在未保存在多线程 makefile 中的“仅限订单”先决条件的顺序中进行了讨论,但它不起作用)。

让我们以下面的简化示例为例。

== Makefile == t0: echo t0_start `date` sleep 5 echo t0_end `date` t1: echo t1_start `date` sleep 5 echo t1_end `date` t2: echo t2_start `date` sleep 5 echo t3_end `date` # The above were delivered from another team grp_t0 : t0 grp_t1_t2: t1 t2 all: grp_t0 | grp_t1_t2 ==
grp_t0 and grp_t1_t2 are defined by the consumer team. How do I now run grp_t0 and grp_t1_t2 in parallel but sequential inside grp_t1_t2.
上面的代码生成了

== t0_start Sun Apr 7 08:31:59 PDT 2024 t2_start Sun Apr 7 08:31:59 PDT 2024 t1_start Sun Apr 7 08:31:59 PDT 2024 t0_end Sun Apr 7 08:32:04 PDT 2024 t3_end Sun Apr 7 08:32:04 PDT 2024 t1_end Sun Apr 7 08:32:04 PDT 2024 ==
期望并行启动 {t0,t1},然后启动 t2

linux makefile gnu-make
1个回答
0
投票
使用

.NOTPARALLEL

.NOTPARALLEL: all all: grp_t0 grp_t1_t2

.WAIT

all: grp_t0 .WAIT grp_t1_t2
    
© www.soinside.com 2019 - 2024. All rights reserved.