代码之家  ›  专栏  ›  技术社区  ›  Piotr Dobrogost

如何在nmake调用之间转发宏?

  •  1
  • Piotr Dobrogost  · 技术社区  · 15 年前

    如何在nmake调用之间转发宏?

    假设我们有

    --- a.mak ---
    
    some_variable = value
    
    all:
       nmake -f b.mak
    
    --- END ---
    
    --- b.mak ---
    
    all:
       @echo some_variable = WHAT TO PUT HERE TO GET VALUE OF some_variable?
    
    --- END ---
    

    2 回复  |  直到 8 年前
        1
  •  1
  •   Michael Burr    15 年前

    calling nmake recursively :

    所以,你可以 a.mak

    # ---- a.mak ----
    some_variable = value
    
    all:   
        nmake -f b.mak some_variable=$(some_variable)
    #--- END ---
    

    另外,请注意,使用 set 恩马克 自动将环境变量名称大写(即使是像“ windir “由于某些原因,它在系统中是小写的),并且区分大小写,因此要使用环境变量,必须使用大写的变量。

    From MSDN

    所以,这是你的想法 b.mak 如果要使用环境而不是在命令行上显式地传递变量,则应如下所示:

    #--- b.mak ---
    all:
       @echo some_variable is: $(SOME_VARIABLE)
    #--- end ---
    

        2
  •  0
  •   hlovdal    15 年前

    也许你应该考虑不要重复调用,看看论文。 Recursive Make Considered Harmful . 您仍然可以拥有与已有的makefile(make包含)类似的模块化文件,只是规则仅在一个顶级makefile中定义。

    推荐文章