代码之家  ›  专栏  ›  技术社区  ›  Sean Allred

如何在变量中间插入特殊参数?

  •  0
  • Sean Allred  · 技术社区  · 6 年前

    我有以下生成文件:

    PROG := "prog -o1 one -o2 two --"
    

    什么也来不了 之后 -- . 这通常是我想要的呼叫模式 prog :

    thing:
        $(PROG) some files here
    

    但有一个特别的目标我想称之为 prog -o1 one -o2 two -o3 three -- some other file ,所以下面是我试图做的(假设 := 为惰性计算设置变量,尽管我似乎误解了那里的上下文):

    PROG := "prog -o1 one -o2 two $(OTHER_PROG_ARGS) --"
    
    thing:
        $(PROG) some files here
    
    other : OTHER_PROG_ARGS="-o3 three"
    other:
        $(PROG) some other file
    

    看来 PROG 正在扩展分配 = ;有什么方法可以满足我的需求(例如,使用某种延迟扩展)?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Sean Allred    6 年前

    仔细阅读手册之后, specifically the difference between := and = , 我知道了 = = 递归地扩展(为了我的目的,“惰性地”)。

    分配 PROG 具有 = 如前所述,给出特定于目标的变量,如下所示:

    PROG = prog -o1 one -o2 two $(OTHER_PROG_ARGS) --
    
    thing:
        $(PROG) some files here
    
    other: OTHER_PROG_ARGS = -o3 three
    other:
        $(PROG) some other file