Makefile
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")
 
b25bcf1a
 BUILD_OPTIONS = -ldflags "-X main.GITCOMMIT $(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 $@)
a7c0e9a3
 	@if [ -h $@ ]; then rm -f $@; fi; ln -sf $(CURDIR)/ $@
c4ad6b07
 	@(cd $(DOCKER_MAIN); go get -d $(GO_OPTIONS))
7009d6c6
 
a8651a23
 whichrelease:
 	echo $(RELEASE_VERSION)
 
 release: $(BINRELEASE)
b6a5e604
 	s3cmd -P put $(BINRELEASE) s3://get.docker.io/builds/`uname -s`/`uname -m`/docker-$(RELEASE_VERSION).tgz
3384943c
 	s3cmd -P put docker-latest.tgz s3://get.docker.io/builds/`uname -s`/`uname -m`/docker-latest.tgz
b6a5e604
 
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)
3384943c
 	cd $(SRCRELEASE); cp -R bin docker-latest; tar -f ../docker-latest.tgz -zv -c docker-latest
a8651a23
 
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
2d6a4921
 	@(cd $(DOCKER_DIR); sudo -E go test $(GO_OPTIONS))
 
 testall: all
5dcab2d3
 	@(cd $(DOCKER_DIR); sudo -E go test ./... $(GO_OPTIONS))
9b13d21f
 
 fmt:
650dff73
 	@gofmt -s -l -w .
bbaa975e
 
 hack:
bb61678b
 	cd $(CURDIR)/hack && vagrant up
 
 ssh-dev:
 	cd $(CURDIR)/hack && vagrant ssh