1

我有一个makefile,我通过命令行向它传递了一个参数。假设我传递了诸如此类的时钟频率参数。

make run FREQ=500

在我的 makefile 中,我想将 FREQ 的值包含在一个字符串中,例如,我想像这样扩展它。

RUN_FLG = "--frequency = 500"

我知道如果您正常使用该参数(不在字符串内部),您可以使用 $(FREQ),但是如何在字符串内部扩展它?

4

2 回答 2

1

make不知道什么是字符串;您将宏引用嵌入到字符串中,就像在字符串外一样:

DEFAULT_FREQ = 60
FREQ         = $(DEFAULT_FREQ)

RUN_FLG = "--frequency=$(FREQ)"

我已经“纠正”了--frequency; 您通常不会=将选项文本与选项分开,并且该值也将不带空格。

我在内部为 FREQ 提供了一个默认值,makefile因此如果在没有任何FREQ=500覆盖的情况下调用它,您仍然可以将默认值作为$(RUN_FLG).

于 2012-05-28T19:22:53.360 回答
1

只需使用$(value)

例子:

freq = 500
x = "--frequency = $(freq)"

run:
    @$(/bin/echo -e) $(x)

输出make -n

"--frequency = 500"
于 2012-05-28T19:24:14.723 回答