代码之家  ›  专栏  ›  技术社区  ›  cd1

makefile目标依赖于环境变量中的文件

  •  2
  • cd1  · 技术社区  · 14 年前

    如果我跑 make 这样地:

    make VAR=dir
    

    是否有方法将var变量指向的位置添加为目标依赖项?实际上,我需要在该目录中定义一个文件作为依赖项。

    我会跟着:

    target: $(VAR)/file.txt
      echo yes
    

    但是如果变量没有定义,目标将理解 /file.txt 这不是我想要的。我还考虑创建一个假目标来检查变量, test 但假目标每次都会被执行,因此, target 也会。

    有什么解决办法吗?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Beta    14 年前

    如果变量没有定义,您还没有说您想要什么样的行为,但这可能是您想要的:

    ifdef VAR
    target: $(VAR)/file.txt
    endif
    
    target:
      echo yes
      @echo and here are the dependencies: $^