использование patsubst и dir - PullRequest
2 голосов
/ 12 марта 2012

Я пытаюсь выяснить, что означают следующие две строки в файле .mk

include $ (ROOTDIRECT) / target / $ (MYSUBDIR) /defs.mk
include $ (ROOTDIRECT)/ target / $ (dir $ (patsubst% /,%, $ (MYSUBDIR))) / defs.mk

Для ясности пусть ROOTDIRECT будет "/ home / me", а MYSUBDIR будет "платформой"
Первая строка, которую я предполагаю, является прямой и включает в себя "/home/me/target/platform/defs.mk"

Вторая строка, которую я не понимаю, и я предполагаю, что она включает в себя "/ home /me / target / defs.mk "
Правильно ли я / неправ, и может ли кто-нибудь помочь мне понять вторую строку

1 Ответ

6 голосов
/ 12 марта 2012

$(patsubst %/,%,$(MYSUBDIR)) заменит все, что соответствует шаблону %/ на %, где % может быть чем угодно.

Другими словами, будет удален конечный / из $(MYSUBDIR).

См. Руководство по эксплуатации GNU 8.2 Функции для подстановки и анализа строк

...