What does this strange Makefile target “.PHONY” mean

make

In this https://github.com/kubernetes/helm/blob/master/Makefile
there are targets with a dot in front of them. What is this convention for ?

.PHONY: all
all: build

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

Best Answer

The special rule .PHONY is used to specify that the target is not a file. Common uses are clean and all. This way it won't conflict if you have files named clean or all.

Here is a link to a section on this topic in the GNU make manual

Related Question