GNU Makefile и bash - экранирование - PullRequest
5 голосов
/ 20 июля 2011

В рецепте для цели я хочу сгенерировать скрипт bash, который обрабатывает аргументы командной строки ... однако экранирование Makefile ускользает от меня

цель: deps echo "./a.out \" $ @ \ ""> wrapper.a.out

Тем не менее, $ @ имеет особое значение в Makefile GNU, который запутывает вещи.

Пробовал $ @, $$ @ ... ничего не работает.

Итак, как правильно это сделать?

1 Ответ

5 голосов
/ 20 июля 2011
echo './a.out "$$@"' >wrapper.a.out

Вам нужно удвоить $, чтобы преодолеть make.затем используйте одинарные кавычки в команде echo, чтобы созданная оболочка для запуска echo сама по себе не развернула $@.

...