Makefile:can'罐头食谱'有参数吗?

时间:2014-01-21 10:02:58

标签: makefile dependencies build-process gnu-make

我的问题涉及GNU的制作。

如果您有一系列命令可用作多个目标的配方,canned recipe就派上用场了。我可能看起来像这样:

define run-foo
# Here comes a
# sequence of commands that are
# executed line by line
endef

现在你可以使用这样的罐头食谱:

file1: input1:
    $(run-foo)

$(pattern) : sub/% : %.inp
    $(run-foo)

等等。我想知道是否可以定义带参数的罐装配方(或类似的东西),以便我可以像这样执行它们:

file2: input2
    $(run-foo) specific-parameter2 "additional"

file3: input3
    $(run-foo) another-parameter3 "text"

这可能吗?任何提示欢迎:)

1 个答案:

答案 0 :(得分:13)

你这样做:

  • $1 - ed宏中使用参数$2define ...等
  • 通过$(call ...)
  • 调用宏

例如:

define recipe
echo $1
endef

all: t1 t2

t1:
    $(call recipe,"One")

t2:
    $(call recipe,"Two")