2016-09-06 3 views
1

Я следующие правила в моем Makefile:

appfile appfile.symbols: 
    build-the-app 

distribute: appfile appfile.symbols 
    push -flag1 appfile -flag2 appfile.symbols 

Я хотел бы обменять push -flag1 appfile -flag2 appfile.symbols вместо этого использовать зависимость, полученную из $^ как push -flag1 $^1 -flag2 $^2

Есть ли способ расщепление $^для достижения этого?

Спасибо.

ответ

4

Первое обязательное условие: $<. Вы можете использовать функцию word в GNU сделать, чтобы получить другие (или для всех из них, если вы предпочитаете):

distribute: appfile appfile.symbols 
     push -flag1 $< -flag2 $(word 2,$^) 
2

Когда зависимости есть определенный шаблон, вы можете использовать filter и filter-out; например

distribute: ... 
      push -flag1 $(filter-out %.symbols,$^) -flag2 $(filter %.symbols,$^) 
+0

спасибо! оба ответа соответствуют моим потребностям, к сожалению, я могу принять только один из них :( – carlossless

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