add prefix "common-" to make target names
This allows rules to be overridden with warnings about conflicting
target names.
@@ -41,13 +41,18 @@ DOCKER_REPO ?= prom
.PHONY: all
all: style staticcheck unused build test
-.PHONY: style
-style:
+# This rule is used to forward a target like "build" to "common-build". This
+# allows a new "build" target to be defined in a Makefile which includes this
+# one and override "common-build" without override warnings.
+%: common-% ;
+
+.PHONY: common-style
+common-style:
@echo ">> checking code style"
! $(GOFMT) -d $$(find . -path ./vendor -prune -o -name '*.go' -print) | grep '^'
-.PHONY: check_license
-check_license:
+.PHONY: common-check_license
+common-check_license:
@echo ">> checking license header"
@licRes=$$(for file in $$(find . -type f -iname '*.go' ! -path './vendor/*') ; do \
awk 'NR<=3' $$file | grep -Eq "(Copyright|generated|GENERATED)" || echo $$file; \
@@ -57,56 +62,56 @@ check_license:
exit 1; \
fi
-.PHONY: test-short
-test-short:
+.PHONY: common-test-short
+common-test-short:
@echo ">> running short tests"
$(GO) test -short $(pkgs)
-.PHONY: test
-test:
+.PHONY: common-test
+common-test:
@echo ">> running all tests"
$(GO) test -race $(pkgs)
-.PHONY: format
-format:
+.PHONY: common-format
+common-format:
@echo ">> formatting code"
$(GO) fmt $(pkgs)
-.PHONY: vet
-vet:
+.PHONY: common-vet
+common-vet:
@echo ">> vetting code"
$(GO) vet $(pkgs)
-.PHONY: staticcheck
-staticcheck: $(STATICCHECK)
+.PHONY: common-staticcheck
+common-staticcheck: $(STATICCHECK)
@echo ">> running staticcheck"
$(STATICCHECK) -ignore "$(STATICCHECK_IGNORE)" $(pkgs)
-.PHONY: unused
-unused: $(GOVENDOR)
+.PHONY: common-unused
+common-unused: $(GOVENDOR)
@echo ">> running check for unused packages"
@$(GOVENDOR) list +unused | grep . && exit 1 || echo 'No unused packages'
-.PHONY: build
-build: promu
+.PHONY: common-build
+common-build: promu
@echo ">> building binaries"
$(PROMU) build --prefix $(PREFIX)
-.PHONY: tarball
-tarball: promu
+.PHONY: common-tarball
+common-tarball: promu
@echo ">> building release tarball"
$(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR)
-.PHONY: docker
-docker:
+.PHONY: common-docker
+common-docker:
docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" .
-.PHONY: docker-publish
-docker-publish:
+.PHONY: common-docker-publish
+common-docker-publish:
docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)"
-.PHONY: docker-tag-latest
-docker-tag-latest:
+.PHONY: common-docker-tag-latest
+common-docker-tag-latest:
docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):latest"
.PHONY: promu
