.PHONY: dbuild man \ localtest localunittest localintegration \ test unittest integration PREFIX := $(DESTDIR)/usr/local BINDIR := $(PREFIX)/sbin RUNC_IMAGE := runc_dev RUNC_TEST_IMAGE := runc_test PROJECT := github.com/opencontainers/runc TEST_DOCKERFILE := script/test_Dockerfile BUILDTAGS := seccomp RUNC_BUILD_PATH := /go/src/github.com/opencontainers/runc/runc RUNC_INSTANCE := runc_dev COMMIT := $(shell git rev-parse HEAD 2> /dev/null || true) RUNC_LINK := $(CURDIR)/Godeps/_workspace/src/github.com/opencontainers/runc export GOPATH := $(CURDIR)/Godeps/_workspace MAN_DIR := $(CURDIR)/man/man8 MAN_PAGES = $(shell ls $(MAN_DIR)/*.8) MAN_PAGES_BASE = $(notdir $(MAN_PAGES)) MAN_INSTALL_PATH := ${PREFIX}/share/man/man8/ VERSION := ${shell cat ./VERSION} all: $(RUNC_LINK) go build -i -ldflags "-X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o runc . static: $(RUNC_LINK) CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o runc . $(RUNC_LINK): ln -sfn $(CURDIR) $(RUNC_LINK) dbuild: runctestimage docker build -t $(RUNC_IMAGE) . docker create --name=$(RUNC_INSTANCE) $(RUNC_IMAGE) docker cp $(RUNC_INSTANCE):$(RUNC_BUILD_PATH) . docker rm $(RUNC_INSTANCE) lint: go vet ./... go fmt ./... man: man/md2man-all.sh runctestimage: docker build -t $(RUNC_TEST_IMAGE) -f $(TEST_DOCKERFILE) . test: make unittest integration localtest: make localunittest localintegration unittest: runctestimage docker run -e TESTFLAGS -ti --privileged --rm -v $(CURDIR):/go/src/$(PROJECT) $(RUNC_TEST_IMAGE) make localunittest localunittest: all go test -timeout 3m -tags "$(BUILDTAGS)" ${TESTFLAGS} -v ./... integration: runctestimage docker run -e TESTFLAGS -t --privileged --rm -v $(CURDIR):/go/src/$(PROJECT) $(RUNC_TEST_IMAGE) make localintegration localintegration: all bats -t tests/integration${TESTFLAGS} install: install -D -m0755 runc $(BINDIR)/runc install-bash: install -D -m0644 contrib/completions/bash/runc $(PREFIX)/share/bash-completion/completions/runc install-man: install -d -m 755 $(MAN_INSTALL_PATH) install -m 644 $(MAN_PAGES) $(MAN_INSTALL_PATH) uninstall: rm -f $(BINDIR)/runc uninstall-bash: rm -f $(PREFIX)/share/bash-completion/completions/runc uninstall-man: rm -f $(addprefix $(MAN_INSTALL_PATH),$(MAN_PAGES_BASE)) clean: rm -f runc rm -f $(RUNC_LINK) rm -rf $(GOPATH)/pkg validate: script/validate-gofmt go vet ./... ci: validate localtest