2015-09-24 6 views
0

Могу ли я использовать целевое имя в целевой переменной?Использовать имя цели в целевой переменной

program_%: CFILE=path/program_%/do_it.c 
         ^^^^^^^^^^ 
         This does not work 

Так что, когда делать "сделать program_xyz", то CFILE будет "путь/program_xyz/do_it.c".

+0

Я думаю, вам нужно [Secondary Expansion] (http://www.gnu.org/software/make/manual/make.html # Secondary-Expansion) для этого. –

ответ

1

Это зависит от того, что вы хотите использовать CFILE для. Так как вы не дали нам никаких подробностей о том, что я просто ответить на ваш точный вопрос: конечно, вы можете сделать это:

program_% : CFILE = path/program_$*/do_it.c 

program_% : ; @echo $(CFILE) 

$ make program_foo 
path/program_foo/do_it.c 

Однако, мое подозрение что вы хотели сделать больше с CFILE к тому же просто использовать его внутри этого рецепта , Если это так, то вышеупомянутое решение не работает для того, что вы действительно хотите сделать ...

+0

$ * (стебель) делает трюк. Tks! – robertchen

Смежные вопросы