你如何更改makefile变量文件扩展名?

won*_*ton 10 variables file-extension makefile

例如,我有一个包含依赖项列表的变量

BOARDS:=lance.mcm light.mcm sac.mcm
Run Code Online (Sandbox Code Playgroud)

我需要另一个名为NET的变量

NET:=lance.net light.net sac.net
Run Code Online (Sandbox Code Playgroud)

它应该设置为当我更改BOARDS变量时,NET也应该更改.例如,如果我将新的zor.mcm添加到BOARDS变量中,它应该自动将zor.net添加到NET变量中.

won*_*ton 24

我找到的最佳解决方案是使用以下语法:

NET:=$(BOARDS:.mcm=.net)
Run Code Online (Sandbox Code Playgroud)

这将查看BOARDS并将.mcm更改为.net


Rom*_*jev 9

作为备选:

BOARDS:=lance.mcm light.mcm sac.mcm
NET:= $(addsuffix .net, $(basename $(BOARDS)))
Run Code Online (Sandbox Code Playgroud)

如果它们匹配模式,这将保留文件路径名中的内容