如何使用文件列表制作Makefile模式规则

时间:2018-05-21 13:37:31

标签: makefile gnu-make

想知道如何应用pattern rules等内容来完成Makefile中的以下内容:

take!

无需将FILES := a b c d $(FILES).c: run build $(FILE).c # use $(FILE) without .c extension, etc. 中的所有值命名为FILESa.c等,因为我将在其他地方使用这些名称。

如果我使用b.c尝试上述操作,我会得到:

make a.c

1 个答案:

答案 0 :(得分:2)

已经在列表上运行的addsuffix内置函数在这里很有用:

targets := $(addsuffix .c,$(FILES))

但是,您可以简单地使用模式规则。自动变量$*将对应于词干(即%部分):

%.c:
   run build $@
   # use $* for filename without .c extension, etc.