Makefile本质上是声明性的,因此我认为make本身不能提供所需的内容。但是,您似乎想将某些字符串值与特定目标相关联,因此可能会引起关注GNU make 的“目标特定变量值”功能。这是手册的摘录:
目标特定变量的另一个特殊功能:定义目标特定变量时,该变量值也对该目标的所有依赖项有效(除非这些依赖项用其自己的目标特定变量值覆盖它)。因此,例如,如下语句:
prog : CFLAGS = -g
prog : prog.o foo.o bar.o
将设置CFLAGS
以-g
在命令脚本prog
,但它也将设置CFLAGS
,以-g
在创建prog.o,foo.o的,而文件bar.o的命令脚本,并建立它们的依赖任何命令脚本。
如果您还没有阅读过GNU make手册,那真是太好了。
dog: ANIMAL=dog.c BULLY=pull_tail SOUND=bark
采用:
dog: ANIMAL=dog.c
dog: BULLY=pull_tail
dog: SOUND=bark