我有一个简单的Makefile
name=xxx
build:
docker build -t $(name) .
run:
docker run --rm -it $(name)
.PHONY: default
default: build run
当我执行make
时,只有build
运行;但make default
同时执行build
和run
短语。
有什么想法吗?
答案 0 :(得分:2)
default
没有任何特殊之处,Makefiles 默认目标是首先指定的目标。
name=xxx
.PHONY: default
default: build run
build:
docker build -t $(name) .
run:
docker run --rm -it $(name)
应该这样做。
答案 1 :(得分:2)
“默认”目标,即:如果没有为make
指定目标(而不是名称为default
的目标),则默认构建的目标是找到的第一个目标在makefile中。
只需放置以下行:
default: build run
在makefile中的任何其他目标之前。这会将名为default
的目标转换为默认目标。
答案 2 :(得分:1)
默认目标是makefile中的第一个规则,除非采取特殊步骤。参见:
您可以使用.DEFAULT
更改默认目标: