如果Makefile中出现一些相同命令,可以为这些相同的命令定义一个变量。以define开始,endef结束。
例子:
define run-abs
abs $(firstword $^)
mv abs.bc $@
endef
- run-abs是命令包名称。接下来是运行abs,因为abs程序总是生成“abs.bc”的文件,所以第二行的命令就是把这个文件改名字。
使用例子:
foo.c:foo.y
$(run-abs)
- 此时,$^就是foo.y,$@就是foo.c,make执行时,包中的命令会依次执行。