我有一个makefile,我通过命令行向它传递了一个参数。假设我传递了诸如此类的时钟频率参数。
make run FREQ=500
在我的 makefile 中,我想将 FREQ 的值包含在一个字符串中,例如,我想像这样扩展它。
RUN_FLG = "--frequency = 500"
我知道如果您正常使用该参数(不在字符串内部),您可以使用 $(FREQ),但是如何在字符串内部扩展它?
我有一个makefile,我通过命令行向它传递了一个参数。假设我传递了诸如此类的时钟频率参数。
make run FREQ=500
在我的 makefile 中,我想将 FREQ 的值包含在一个字符串中,例如,我想像这样扩展它。
RUN_FLG = "--frequency = 500"
我知道如果您正常使用该参数(不在字符串内部),您可以使用 $(FREQ),但是如何在字符串内部扩展它?
make
不知道什么是字符串;您将宏引用嵌入到字符串中,就像在字符串外一样:
DEFAULT_FREQ = 60
FREQ = $(DEFAULT_FREQ)
RUN_FLG = "--frequency=$(FREQ)"
我已经“纠正”了--frequency
; 您通常不会=
将选项文本与选项分开,并且该值也将不带空格。
我在内部为 FREQ 提供了一个默认值,makefile
因此如果在没有任何FREQ=500
覆盖的情况下调用它,您仍然可以将默认值作为$(RUN_FLG)
.
只需使用$(value)
例子:
freq = 500
x = "--frequency = $(freq)"
run:
@$(/bin/echo -e) $(x)
输出make -n
:
"--frequency = 500"