7009d6c6 |
DOCKER_PACKAGE := github.com/dotcloud/docker |
a8651a23 |
RELEASE_VERSION := $(shell git tag | grep -E "v[0-9\.]+$$" | sort -nr | head -n 1)
SRCRELEASE := docker-$(RELEASE_VERSION)
BINRELEASE := docker-$(RELEASE_VERSION).tgz |
7009d6c6 |
|
a8651a23 |
GIT_ROOT := $(shell git rev-parse --show-toplevel) |
a57b37ed |
BUILD_DIR := $(CURDIR)/.gopath |
7009d6c6 |
GOPATH ?= $(BUILD_DIR)
export GOPATH
|
21f55419 |
GO_OPTIONS ?=
ifeq ($(VERBOSE), 1)
GO_OPTIONS += -v
endif
|
5471f5b2 |
GIT_COMMIT = $(shell git rev-parse --short HEAD)
GIT_STATUS = $(shell test -n "`git status --porcelain`" && echo "+CHANGES")
|
f68d107a |
BUILD_OPTIONS = -ldflags "-X main.GIT_COMMIT $(GIT_COMMIT)$(GIT_STATUS)" |
37a78902 |
|
7009d6c6 |
SRC_DIR := $(GOPATH)/src
DOCKER_DIR := $(SRC_DIR)/$(DOCKER_PACKAGE)
DOCKER_MAIN := $(DOCKER_DIR)/docker
|
f961ec55 |
DOCKER_BIN_RELATIVE := bin/docker
DOCKER_BIN := $(CURDIR)/$(DOCKER_BIN_RELATIVE) |
7009d6c6 |
|
b3ab0b56 |
.PHONY: all clean test hack release srcrelease $(BINRELEASE) $(SRCRELEASE) $(DOCKER_BIN) $(DOCKER_DIR) |
7009d6c6 |
all: $(DOCKER_BIN)
$(DOCKER_BIN): $(DOCKER_DIR)
@mkdir -p $(dir $@) |
b3ab0b56 |
@(cd $(DOCKER_MAIN); go build $(GO_OPTIONS) $(BUILD_OPTIONS) -o $@) |
f961ec55 |
@echo $(DOCKER_BIN_RELATIVE) is created. |
7009d6c6 |
$(DOCKER_DIR):
@mkdir -p $(dir $@) |
b3ab0b56 |
@rm -f $@ |
7009d6c6 |
@ln -sf $(CURDIR)/ $@ |
b3ab0b56 |
@(cd $(DOCKER_MAIN); go get $(GO_OPTIONS)) |
7009d6c6 |
|
a8651a23 |
whichrelease:
echo $(RELEASE_VERSION)
release: $(BINRELEASE) |
b3ab0b56 |
srcrelease: $(SRCRELEASE)
deps: $(DOCKER_DIR) |
a8651a23 |
|
b3ab0b56 |
# A clean checkout of $RELEASE_VERSION, with vendored dependencies |
a8651a23 |
$(SRCRELEASE):
rm -fr $(SRCRELEASE)
git clone $(GIT_ROOT) $(SRCRELEASE) |
8b8c8bf7 |
cd $(SRCRELEASE); git checkout -q $(RELEASE_VERSION) |
a8651a23 |
# A binary release ready to be uploaded to a mirror
$(BINRELEASE): $(SRCRELEASE)
rm -f $(BINRELEASE)
cd $(SRCRELEASE); make; cp -R bin docker-$(RELEASE_VERSION); tar -f ../$(BINRELEASE) -zv -c docker-$(RELEASE_VERSION)
|
7009d6c6 |
clean:
@rm -rf $(dir $(DOCKER_BIN))
ifeq ($(GOPATH), $(BUILD_DIR))
@rm -rf $(BUILD_DIR)
else ifneq ($(DOCKER_DIR), $(realpath $(DOCKER_DIR)))
@rm -f $(DOCKER_DIR)
endif |
6b4bc971 |
test: all |
21f55419 |
@(cd $(DOCKER_DIR); sudo -E go test $(GO_OPTIONS)) |
9b13d21f |
fmt: |
650dff73 |
@gofmt -s -l -w . |
bbaa975e |
hack: |
b7cda328 |
cd $(CURDIR)/buildbot && vagrant up |