例如,我有一个持有依赖如何更改makefile变量文件扩展名?
BOARDS:=lance.mcm light.mcm sac.mcm
我需要一个名为NET这样
NET:=lance.net light.net sac.net
应设定另一个变量列表的变量,当我改变板变量, NET也应该改变。 例如,如果我将一个新的zor.mcm添加到BOARDS变量中,它应该自动将zor.net添加到NET变量中。
例如,我有一个持有依赖如何更改makefile变量文件扩展名?
BOARDS:=lance.mcm light.mcm sac.mcm
我需要一个名为NET这样
NET:=lance.net light.net sac.net
应设定另一个变量列表的变量,当我改变板变量, NET也应该改变。 例如,如果我将一个新的zor.mcm添加到BOARDS变量中,它应该自动将zor.net添加到NET变量中。
我已经找到了最好的解决办法就是用这种语法:
NET:=$(BOARDS:.mcm=.net)
这将着眼于董事会和改变.mcm到.NET
多一点解释在[如何更改GNU make中的多个扩展名的列表中每个文件的扩展名?](http://stackoverflow.com/a/12071918/1730674) – askewchan 2015-09-26 21:57:14
作为替代方案:
BOARDS:=lance.mcm light.mcm sac.mcm
NET:= $(addsuffix .net, $(basename $(BOARDS)))
这将保留文件路径名内的内容,如果它们匹配模式
这就是为什么我首先发布了这个问题。这是完美的,谢谢! – wonton 2012-08-09 17:54:31
Superset:multiple ext ensions:http://stackoverflow.com/questions/12069457/how-to-change-the-extension-of-each-file-in-a-list-with-multiple-extensions-in-g – 2015-07-04 10:27:27