这个奇怪的 Makefile 目标“.PHONY”是什么意思?

Bon*_*Ami 9 make

在这个https://github.com/kubernetes/helm/blob/master/Makefile 中,目标前面有一个点。这个约定是为了什么?

.PHONY: all
all: build

.PHONY: build
build:
    GOBIN=$(BINDIR) $(GO) install $(GOFLAGS) -tags '$(TAGS)' -ldflags '$(LDFLAGS)' k8s.io/helm/cmd/...
Run Code Online (Sandbox Code Playgroud)

Pau*_* H. 13

特殊规则.PHONY用于指定目标不是文件。常见用途是cleanall。这样,如果您有名为clean或 的文件,则不会发生冲突all

这是GNU make 手册中有关此主题部分链接