首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使Makefile目标更新依赖于环境变量的值?

如何使Makefile目标更新依赖于环境变量的值?
EN

Stack Overflow用户
提问于 2020-01-17 09:43:56
回答 2查看 169关注 0票数 0

我有一个make目标,根据环境变量的值,它有不同的输出。

我如何才能:

  • 跳过依赖项,如果环境变量未更改上次运行
  • make或如果环境变量未设置或已更改

,则不重新生成目标。

我想我可以用当前环境变量值创建或有条件地更新文件,然后使用该文件作为make依赖项。我找不到一种优雅的方法来使用本地工具来完成这个任务。(sed -i总是更新文件的时间戳,也许awk是可能的)

EN

Stack Overflow用户

发布于 2020-01-17 11:57:18

使条件句可以作为一个起点:

代码语言:javascript
运行
复制
.PHONY: all

FILE := foobar
ifdef ENV_VAR
OLD_ENV_VAR := $(shell [ -f $(FILE) ] && cat $(FILE))
ifeq ($(ENV_VAR),$(OLD_ENV_VAR))
DONTRUN := 1
endif
endif

ifdef DONTRUN
all:
    @echo 'ENV_VAR unmodified'
else
$(shell printenv ENV_VAR > $(FILE))
all:
    @echo 'ENV_VAR undefined or modified'
endif
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59784768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档