Прежде всего, обратите внимание, что, вероятно, не должно быть двойных кавычек вокруг путей.В вашем примере я предполагаю, что значение $(FOO)/$(BAR)
будет "/my/path/to"/"dir"
вместо ожидаемого /my/path/to/dir
.
Отвечая на ваш вопрос, вообще говоря, нет.Объединение двух значений сохраняет пробелы, поэтому, если вы хотите написать $(FOO)/$(BAR)
, вы должны гарантировать, что и $(FOO)
, и $(BAR)
являются отдельными словами без начальных или конечных пробелов.Функция strip
достаточно хороша для удаления последней (если есть).
Однако вы можете рассматривать одну из этих переменных как список и писать что-то вроде $(FOO:%=%/$(BAR))
, и это будет работать нормально.Но лично я предпочел бы проверить значение FOO
(либо исправить его, либо с ошибкой, если оно плохое), а затем использовать его как обычно, например:
FOO = /my/path/to # <- a space!
BAR = dir
...
ifneq ($(word 2,[$(FOO)]),)
$(error There is a whitespace inside the value of 'FOO')
endif