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

标签 makefile dependencies environment-variables target

如果我像这样运行make:

make VAR=dir

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

我会选择:

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

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

有什么解决办法吗?

最佳答案

您还没有说明如果 undefined variable 您想要什么行为,但这可能就是您想要的:

ifdef VAR
target: $(VAR)/file.txt
endif

target:
  echo yes
  @echo and here are the dependencies: $^

关于Makefile 目标依赖于环境变量中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374426/

相关文章:

amazon-web-services - 从 .ebextensions 配置文件访问 Elastic Beanstalk 环境属性

ruby-on-rails - 在 Rake 任务中使用环境变量

c++ - 无法使用ndk for android生成openssl的静态库

unit-testing - 字节伙伴和 cglib 在 Spock 测试中不可用

vim - 如何在 vim 中处理具有另一个名称的 Makefile?

dependencies - 如何制作一个在依赖项升级时重新配置自身的 .deb 包

r - 当我在导入 ggplot2 的包中使用 ggplotGrob 函数时,找不到它

java - 用实际值替换环境变量占位符?

c++ - 如何在执行 ./configure 时设置 ccshared=-fPIC?

c++ - ld 找不到可用的库