11

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

BOARDS:=lance.mcm light.mcm sac.mcm

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

NET:=lance.net light.net sac.net

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

4

2 回答 2

26

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

NET:=$(BOARDS:.mcm=.net)

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

于 2012-08-09T17:41:28.577 回答
13

作为备选:

BOARDS:=lance.mcm light.mcm sac.mcm
NET:= $(addsuffix .net, $(basename $(BOARDS)))

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

于 2012-08-09T17:49:41.773 回答