首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Makefile有条件的伪目标执行

Makefile有条件的伪目标执行
EN

Stack Overflow用户
提问于 2020-07-07 17:34:43
回答 1查看 137关注 0票数 0

我有一个构建docker镜像的make目标,它存储在独占的Docker空间中,无法显式定位。它看起来是这样的:

代码语言:javascript
复制
.PHONY: docker-build
docker-build: Dockerfile a.txt b.txt
    docker build -t my-image .

命令docker build -t my-image .仅依赖于源文件Dockerfile a.txt b.txt,但输出不是我可以轻松定位的显式文件,因此docker-build是一个PHONY目标。

理想情况下,只要Dockerfile a.txt b.txt不变,就永远不会执行docker-build。是否将docker-build声明为PHONY并不重要,因为docker-build总是会被执行。我可以显式地使用touch docker-build,但是使用虚拟文件有很多缺点。有什么办法可以解决这个问题吗?

我想过使用.INTERMEDIATE,但问题是docker-build将被显式地调用(make docker-build),所以只有在没有显式调用docker-build的情况下它才能工作。

EN

回答 1

Stack Overflow用户

发布于 2020-07-08 03:50:32

为什么不能直接使用前哨文件呢?类似于:

代码语言:javascript
复制
docker-build: .last-build

.last-build: Dockerfile a.txt b.txt
        docker build -t my-image .
        @touch $@
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62772256

复制
相关文章

相似问题

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