我想在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
并强制重复这个前提条件。
这是不可能的。 没有办法让make在每次调用make时对同一个目标进行多次构建。
总之,依赖这种顺序是错误的:如果你想使用并行作业 (make -j
)来让你的构建运行得更快,那么这就不能达到你想要的目的了。
最好的办法是简单地将 "sep "放入目标的配方中。
task1:
@echo
@echo task 1
etc.