在 Makefile 中拆分 $^

Splitting $^ in a Makefile

我的 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

有什么方法可以拆分 $^ 来实现这一点吗?

谢谢。

第一个先决条件是 $<。您可以使用 GNU make 中的 word 函数来获取其他功能(如果您愿意,也可以使用所有功能):

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

当依赖有一定的模式时,可以使用filterfilter-out;例如

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