Фон
Я хочу иметь возможность указать параметры Makefile с помощью функции, чтобы моя цель помощи могла автоматически перечислять все определенные параметры.
Что я пробовал
Написание функции, которая хранит текст справки в переменной (и отслеживает список таких переменных), готовый для последующей распечатки.
Это прекрасно работает, за исключением случаев, когда я использую запятые в строках справки!
Я попытался отладить ошибку и сократил ее до следующего примера, который, по моему мнению, является основной причиной:
У меня есть следующий make-файл:
get_first_param = $(1)
.PHONY: help
help:
@echo $(call get_first_param, "Hi; my name is Peter")
ЕслиЯ запускаю make help
, это работает нормально и печатает сообщение.
Однако, если я изменяю ;
на ,
, я получаю ошибку:
/bin/sh: 1: Syntax error: Unterminated quoted string
Makefile:5: recipe for target 'help' failed
make: *** [help] Error 2
Я предполагаюэто вызвано тем, что функция вызова обрабатывает запятую как обозначение конца первого параметра, и поэтому возвращаемое значение равно "hi
.
(я использую Gnu Make 4.1)
Вопрос
Есть ли способ использовать запятые в строке successfully?
Я пробовал различные способы экранирования кавычек и запятых, но, кажется, ничто не может это исправить.