如何在Makefile目标中重复相同的先决条件?

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

我想在Makefile中做这样的事情 Makefile (有更多的任务)。

.PHONY: sep tasks task1 task2 task3

tasks: task1 sep task2 sep task3

task1:
    @echo task 1

task2:
    @echo task 2

task3:
    @echo task 3

sep:
    @echo

的结果: tasks 目标是。

task 1

task 2
task 3

The sep 目标只在第一次执行。这是非常正常的。但我希望每次都能执行。有什么方法可以强制重复?

一个变通的方法是使用多个 sep 这样的目标。

tasks: task1 sep1 task2 sep2 task3

和分组的目标定义所有 sep 可以在一次定义。

sep1 sep2 &:
    @echo

这样做的结果是正确的。

task 1

task 2

task 3

我想知道是否有可能只用一个人就能有同样的行为 sep 并强制重复这个前提条件。

makefile
1个回答
2
投票

这是不可能的。 没有办法让make在每次调用make时对同一个目标进行多次构建。

总之,依赖这种顺序是错误的:如果你想使用并行作业 (make -j)来让你的构建运行得更快,那么这就不能达到你想要的目的了。

最好的办法是简单地将 "sep "放入目标的配方中。

task1:
        @echo
        @echo task 1

etc.

© www.soinside.com 2019 - 2024. All rights reserved.