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>
This commit is contained in:
Stephen J Day 2015-02-06 15:39:11 -08:00
parent 9b9ea55797
commit d513d07e5f

View file

@ -4,11 +4,9 @@ PREFIX?=$(shell pwd)
# Used to populate version variable in main package. # 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`" GO_LDFLAGS=-ldflags "-X `go list ./version`.Version `git describe --match 'v[0-9]*' --dirty='.m' --always`"
.PHONY: clean binaries .PHONY: clean all fmt vet lint build test binaries
.DEFAULT: default .DEFAULT: default
all: clean fmt vet fmt lint build test binaries
default:
@echo Please read the make targets before using this Makefile.
AUTHORS: .mailmap .git/ORIG_HEAD .git/FETCH_HEAD .git/HEAD AUTHORS: .mailmap .git/ORIG_HEAD .git/FETCH_HEAD .git/HEAD
git log --format='%aN <%aE>' | sort -fu >> $@ git log --format='%aN <%aE>' | sort -fu >> $@
@ -20,6 +18,25 @@ version/version.go:
${PREFIX}/bin/registry: version/version.go $(shell find . -type f -name '*.go') ${PREFIX}/bin/registry: version/version.go $(shell find . -type f -name '*.go')
go build -o $@ ${GO_LDFLAGS} ./cmd/registry 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 binaries: ${PREFIX}/bin/registry
clean: clean: