distribution/Makefile
Stephen J Day d513d07e5f Add common targets to Makefile
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>
2015-02-06 15:39:11 -08:00

44 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"