1

我想依赖一个只运行一次的虚拟目标。

Makefile到目前为止我尝试过的:

a: b

b: c d
    touch b

c:
    # time consuming task that only needs to run once

d:
    # time consuming task that only needs to run once

有没有办法在b已经存在时停止依赖链?我可以手动清理以摆脱b触发重新运行cand d。如果存在,我希望能够运行a多次而不触发长时间运行的任务b

我有很多任务,比如cand d,所以我想避免在每个单独的任务中接触一个文件,我不希望文件系统被不必要的文件弄得乱七八糟。

4

1 回答 1

3

您可以将 Makefile 编写为:

a: b

b c:
    # time consuming task that only needs to run once
    touch b

make c将无条件地调用你的任务。

make b仅在文件 b 不存在时执行您的任务。

make a依赖于b,所以任务只在b不存在时执行,

于 2012-05-10T13:14:44.263 回答