# Copyright 2018 The Prometheus Authors # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Ensure GOBIN is not set during build so that promu is installed to the correct path unexport GOBIN GO ?= go GOFMT ?= $(GO)fmt FIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) STATICCHECK := $(FIRST_GOPATH)/bin/staticcheck pkgs = $(shell $(GO) list ./... | grep -v /vendor/) PREFIX ?= $(shell pwd) BIN_DIR ?= $(shell pwd) ifdef DEBUG bindata_flags = -debug endif STATICCHECK_IGNORE = all: format staticcheck build test style: @echo ">> checking code style" @! $(GOFMT) -d $(shell find . -path ./vendor -prune -o -name '*.go' -print) | grep '^' check_license: @echo ">> checking license header" @./scripts/check_license.sh test: fixtures/.unpacked sysfs/fixtures/.unpacked @echo ">> running all tests" @$(GO) test -race $(shell $(GO) list ./... | grep -v /vendor/ | grep -v examples) format: @echo ">> formatting code" @$(GO) fmt $(pkgs) vet: @echo ">> vetting code" @$(GO) vet $(pkgs) staticcheck: $(STATICCHECK) @echo ">> running staticcheck" @$(STATICCHECK) -ignore "$(STATICCHECK_IGNORE)" $(pkgs) %/.unpacked: %.ttar ./ttar -C $(dir $*) -x -f $*.ttar touch $@ $(FIRST_GOPATH)/bin/staticcheck: @GOOS= GOARCH= $(GO) get -u honnef.co/go/tools/cmd/staticcheck .PHONY: all style check_license format test vet staticcheck # Declaring the binaries at their default locations as PHONY targets is a hack # to ensure the latest version is downloaded on every make execution. # If this is not desired, copy/symlink these binaries to a different path and # set the respective environment variables. .PHONY: $(GOPATH)/bin/staticcheck