假设我有几个名为foo.c、bar.c、baz.c、 ... 的文件,我想为每个运行构建任务的文件创建一个 Makefile 目标。
foo:
make foo.c
.PHONY: foo
foo.c:
run build foo
bar:
make bar.c
.PHONY: bar
bar.c:
run build bar
...
Run Code Online (Sandbox Code Playgroud)
我本质上只是想做make foo并且它构建了make foo.c。但我有 x 个文件,并且希望为每个文件创建任务。如何实现这一点。就像是:
FILES = $(foo bar baz ...)
$(FILES): $(FILES)
make $(FILE)
.PHONY: $(FILE)
$(FILES).c: $(FILES)
run build $(FILE)
Run Code Online (Sandbox Code Playgroud)
但所有文件都是相互独立的。
您可以对目标使用模式规则.c,对必须是虚假目标的目标使用静态模式规则foo(即,在bar您的示例中):
targets := foo bar
.PHONY: $(targets)
# static pattern rule
$(targets): %:
make $*.c
# pattern rule
%.c:
run build $*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2766 次 |
| 最近记录: |