Я использовал трюк $\
для объединения строк в make-файле без добавления пробелов (например, если бы я это сделал:)
$(info TEST: 1$\
2)
Я бы получил ожидаемый результат
TEST: 12
без пробела между 1
и 2
. Я, кажется, наткнулся на угловой случай, который не действует, как я ожидаю, однако. Если у меня есть следующее:
$(info TEST: [$(or \
,$\
)])
, я получаю следующее:
TEST: [$]
Предыдущий пример показывает, что \
имеет приоритет над $
, поэтому должен разрешить до $(or ,)
, которое должно быть пустым. Это ошибка в make или есть объяснение этому поведению? (Я использую gnu make 4.2.1).
------ EDIT -------
Я только что проверил, что это не происходит в make 3.81, итаким образом, считая это ошибкой. Я отправил письмо сопровождающим. Оставьте этот вопрос открытым, если кто-то столкнется с той же проблемой
----- Новое редактирование -----
Хорошо, обновите - похоже, $(or)
автоматически удаляетвсе параметры. Вероятно, в этом суть проблемы - $(or , $ ,)
будет отбрасывать каждый параметр перед разрешением $<space>
... поэтому у него будет второй параметр $
(без пробелов), который разрешается до ... $
,Оооо ... Теперь возникает вопрос, считается ли это правильным поведением или это ошибка?