LINUX.ORG.RU

паттерны в правилах gmake


0

1

Есть в (g)make вот такие конструкции:

%.o : %.c:
   bla-bla-bla

Хочется паттерн % подсунуть не просто строкой, а подать его как аргумент в макрос или другое выражение. Например, вместо %.с хочу получить значение переменной $(VAR_%) или передать кусок в макрос типа $(call macro,%). Как такое можно сделать? Что-то никак не соображу. gmake.

★★★★★

В зависимость или в правило подсунуть? Если в правило, то через автоматические переменные крутите ее как хотите, но так лаконично ИМНО не выйдет. Если в зависимость - то по скромному лично опыту вообще никак.

AIv ★★★★★
()
Ответ на: комментарий от anonymous

А вообще, RTFM: http://www.gnu.org/software/make/manual/make.html

я и так его курю, но что-то пока не додумаю как. Спасибо за наводку ниже, завтра попробую.

зависимость или в правило подсунуть? Если в правило, то через автоматические переменные крутите ее как хотите, но так лаконично ИМНО не выйдет. Если в зависимость - то по скромному лично опыту вообще никак.

в зависимость нужно. Хочу сделать условную зависимость в зависимости от паттерна цели. Например, паттерн цели %.a, подаём foo.a и зависимости читаем из SOME_FOO, подаём bar.a и зависимость берём из SOME_BAR. Как-то так хочу.

mashina ★★★★★
() автор топика
Ответ на: комментарий от mashina

Тогда никак, оно на другом уровне работает по моему. Я долго с бубном танцевал, в итоге выкрутился через рекурсивный вызов MAKE:

ifndef T
%.a : ...; $(MAKE) T:=$@ $@
else
$(T) : ...
endif

В ветке else можешь чесать $(T) уже любыми макросами в любом месте

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.