Как изменить расширение файла переменных makefile?

Например, у меня есть переменная, содержащая список зависимостей

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

Мне нужна другая переменная с именем NET, чтобы

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

Он должен быть установлен таким образом, чтобы при изменении переменной BOARDS менялась и переменная NET. Например, если я добавлю новый zor.mcm в переменную BOARDS, он должен автоматически добавить zor.net в переменную NET.


person wonton    schedule 09.08.2012    source источник
comment
Надмножество: несколько расширений: stackoverflow.com/questions/12069457/   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 04.07.2015


Ответы (2)


Лучшее решение, которое я нашел, - использовать этот синтаксис:

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

Это посмотрит на ДОСКИ и изменит .mcm на .net.

person wonton    schedule 09.08.2012

Как альтернатива:

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

Это сохранит содержимое внутри путей к файлам, если они соответствуют шаблону.

person Roman Saveljev    schedule 09.08.2012
comment
Вот почему я разместил вопрос в первую очередь. Это идеально, спасибо! - person wonton; 09.08.2012