# Set an output prefix, which is the local directory if not specified PREFIX?=$(shell pwd) # Used to populate version variable in main package. GO_LDFLAGS=-ldflags "-X `go list ./version`.Version `git describe --match 'v[0-9]*' --dirty='.m' --always`" .PHONY: clean all fmt vet lint build test binaries .DEFAULT: default all: AUTHORS clean fmt vet fmt lint build test binaries AUTHORS: .git/HEAD git log --format='%aN <%aE>' | sort -fu > $@ # This only needs to be generated by hand when cutting full releases. version/version.go: ./version/version.sh > $@ ${PREFIX}/bin/vetinari-server: version/version.go $(shell find . -type f -name '*.go') @echo "+ $@" @go build -o $@ ${GO_LDFLAGS} ./cmd/vetinari-server ${PREFIX}/bin/trustmanager: version/version.go $(shell find . -type f -name '*.go') @echo "+ $@" @go build -o $@ ${GO_LDFLAGS} ./cmd/trustmanager vet: @echo "+ $@" @test -z "$$(go tool vet -printf=false . 2>&1 | grep -v Godeps/_workspace/src/ | tee /dev/stderr)" fmt: @echo "+ $@" @test -z "$$(gofmt -s -l . | grep -v Godeps/_workspace/src/ | tee /dev/stderr)" lint: @echo "+ $@" @test -z "$$(golint ./... | grep -v .pb. | grep -v Godeps/_workspace/src/ | tee /dev/stderr)" build: @echo "+ $@" @go build -v ${GO_LDFLAGS} ./... test: @echo "+ $@" @go test -test.short ./... test-full: vet lint @echo "+ $@" @go test -v ./... protos: @protoc --go_out=plugins=grpc:. proto/*.proto clean-protos: @rm proto/*.pb.go binaries: ${PREFIX}/bin/vetinari-server ${PREFIX}/bin/trustmanager @echo "+ $@" clean: @echo "+ $@" @rm -rf "${PREFIX}/bin/vetinari-server" "${PREFIX}/bin/trustmanager"