LINUX.ORG.RU

Вопрос про Makefile


0

0

Имеется такая ситуация:
Мне надо заменять метку в файле на строку при сборке.
Для этого в Makefile имеется следующее:
sed -e "s/B_MAKE/$(TAG)/" LIB/header.lib > $@

Переменная TAG объявлялась как
TAG:=`svnversion`

И все было ОК, в файле метка B_MAKE заменялась на номер ревизии.
Теперь понадобилось добавлять туда еще и URL репозитория...

Я, недолго думая, сделал вот так:
TAG:=`svn info|grep URL`

И ни фига, ругается :(
sed -e "s/B_MAKE/`svn info | grep URL`/" LIB/header.lib > bin/satlib.v62
sed: -e выражение #1, символ 27: неизвестный модификатор к `s'

Почему в первом случае нормально подставляется вывод команды, а во втором ошибка? Причем, если сделать @echo $(TAG), то выводится нормальный урл репозитория...

★★★★★

> Почему в первом случае нормально подставляется вывод команды, а во втором ошибка?

Потому что во втором случае команда разворачивается примерно в такое:

sed -e "s/B_MAKE/URL: http://host/path/" LIB/header.lib > bin/satlib.v62

Как вариант:

sed -e "s%B_MAKE%`svn info | grep URL`%" LIB/header.lib > bin/satlib.v62

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

Спасибо больше. Все получилось.

boombick ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.