forked from TrueCloudLab/distribution
d513d07e5f
A nice set of common default targets have been added to the Makefile to make running tests and building binaries more straightforward. Running the Makefile before committing should make build failures less common. Signed-off-by: Stephen J Day <stephen.day@docker.com>
43 lines
1.1 KiB
Makefile
43 lines
1.1 KiB
Makefile
# 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: clean fmt vet fmt lint build test binaries
|
|
|
|
AUTHORS: .mailmap .git/ORIG_HEAD .git/FETCH_HEAD .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/registry: version/version.go $(shell find . -type f -name '*.go')
|
|
go build -o $@ ${GO_LDFLAGS} ./cmd/registry
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
fmt:
|
|
test -z "$$(gofmt -s -l . | grep -v Godeps/_workspace/src/ | tee /dev/stderr)" || \
|
|
echo "+ please format Go code with 'gofmt -s'"
|
|
|
|
lint:
|
|
test -z "$$(golint ./... | grep -v Godeps/_workspace/src/ | tee /dev/stderr)"
|
|
|
|
build:
|
|
go build ${GO_LDFLAGS} ./...
|
|
|
|
test:
|
|
go test -test.short ./...
|
|
|
|
test-full:
|
|
go test ./...
|
|
|
|
binaries: ${PREFIX}/bin/registry
|
|
|
|
clean:
|
|
rm -rf "${PREFIX}/bin/registry"
|