containerd/Makefile
Marcos Lilljedahl c6680da78b Check for minimum golang version
Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>
2016-03-16 17:16:46 -03:00

67 lines
1.5 KiB
Makefile

BUILDTAGS=
# if this session isn't interactive, then we don't want to allocate a
# TTY, which would fail, but if it is interactive, we do want to attach
# so that the user can send e.g. ^C through.
INTERACTIVE := $(shell [ -t 0 ] && echo 1 || echo 0)
ifeq ($(INTERACTIVE), 1)
DOCKER_FLAGS += -t
endif
DOCKER_IMAGE := containerd-dev$(if $(GIT_BRANCH),:$(GIT_BRANCH))
DOCKER_RUN := docker run --rm -i $(DOCKER_FLAGS) "$(DOCKER_IMAGE)"
export GO15VENDOREXPERIMENT:=1
GOLANG_VERSION:=$(shell go version | cut -d ' ' -f3 | cut -c 3-)
all: check_version client daemon shim
check_version:
ifneq ($(shell /bin/echo -e "1.5\n${GOLANG_VERSION}" | sort -V | head -n1),1.5)
$(error "Golang 1.5+ required to build containerd. Current version: ${GOLANG_VERSION}")
endif
bin:
mkdir -p bin/
clean:
rm -rf bin
client: bin
cd ctr && go build -o ../bin/ctr
daemon: bin
cd containerd && go build -tags "$(BUILDTAGS)" -o ../bin/containerd
shim: bin
cd containerd-shim && go build -tags "$(BUILDTAGS)" -o ../bin/containerd-shim
dbuild:
@docker build --rm --force-rm -t "$(DOCKER_IMAGE)" .
dtest: dbuild
$(DOCKER_RUN) make test
install:
cp bin/* /usr/local/bin/
protoc:
protoc -I ./api/grpc/types ./api/grpc/types/api.proto --go_out=plugins=grpc:api/grpc/types
fmt:
@gofmt -s -l . | grep -v vendor | grep -v .pb. | tee /dev/stderr
lint:
@golint ./... | grep -v vendor | grep -v .pb. | tee /dev/stderr
shell: dbuild
$(DOCKER_RUN) bash
test: all validate
go test -v $(shell go list ./... | grep -v /vendor)
validate: fmt
vet:
go vet $(shell go list ./... | grep -v vendor)