PKG_NAME=dotcloud-docker PKG_ARCH=amd64 PKG_VERSION=1 ROOT_PATH:=$(PWD) BUILD_PATH=build # Do not change, decided by dpkg-buildpackage BUILD_SRC=build_src GITHUB_PATH=src/github.com/dotcloud/docker INSDIR=usr/bin SOURCE_PACKAGE=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz DEB_PACKAGE=$(PKG_NAME)_$(PKG_VERSION)_$(PKG_ARCH).deb EXTRA_GO_PKG=fs auth TMPDIR=$(shell mktemp -d -t XXXXXX) # Build a debian source package all: clean build_in_deb build_in_deb: echo "GOPATH = " $(ROOT_PATH) mkdir bin cd $(GITHUB_PATH)/docker; GOPATH=$(ROOT_PATH) go build -o $(ROOT_PATH)/bin/docker # DESTDIR provided by Debian packaging install: # Call this from a go environment (as packaged for deb source package) mkdir -p $(DESTDIR)/$(INSDIR) mkdir -p $(DESTDIR)/etc/init install -m 0755 bin/docker $(DESTDIR)/$(INSDIR) install -o root -m 0755 etc/docker.upstart $(DESTDIR)/etc/init/docker.conf $(BUILD_SRC): clean # Copy ourselves into $BUILD_SRC to comply with unusual golang constraints tar --exclude=*.tar.gz --exclude=checkout.tgz -f checkout.tgz -cz * mkdir -p $(BUILD_SRC)/$(GITHUB_PATH) tar -f checkout.tgz -C $(BUILD_SRC)/$(GITHUB_PATH) -xz cd $(BUILD_SRC)/$(GITHUB_PATH)/docker; GOPATH=$(ROOT_PATH)/$(BUILD_SRC) go get -d for d in `find $(BUILD_SRC) -name '.git*'`; do rm -rf $$d; done # Populate source build with debian stuff cp -R -L ./deb/* $(BUILD_SRC) $(SOURCE_PACKAGE): $(BUILD_SRC) rm -f $(SOURCE_PACKAGE) # Create the debian source package tar -f $(SOURCE_PACKAGE) -C ${ROOT_PATH}/${BUILD_SRC} -cz . # Build deb package fetching go dependencies and cleaning up git repositories deb: $(DEB_PACKAGE) $(DEB_PACKAGE): $(SOURCE_PACKAGE) # dpkg-buildpackage looks for source package tarball in ../ cd $(BUILD_SRC); dpkg-buildpackage rm -rf $(BUILD_PATH) debian/$(PKG_NAME)* debian/files debsrc: $(SOURCE_PACKAGE) # Build local sources #$(PKG_NAME): build_local build_local: -@mkdir -p bin cd docker && go build -o ../bin/docker gotest: @echo "\033[36m[Testing]\033[00m docker..." @sudo -E GOPATH=$(ROOT_PATH)/$(BUILD_SRC) go test -v && \ echo -n "\033[32m[OK]\033[00m" || \ echo -n "\033[31m[FAIL]\033[00m"; \ echo " docker" @echo "Testing extra repos {$(EXTRA_GO_PKG)}" @for package in $(EXTRA_GO_PKG); do \ echo "\033[36m[Testing]\033[00m docker/$$package..." && \ cd $$package ; \ sudo -E GOPATH=$(ROOT_PATH)/$(BUILD_SRC) go test -v && \ echo -n "\033[32m[OK]\033[00m" || \ echo -n "\033[31m[FAIL]\033[00m" ; \ echo " docker/$$package" ; \ cd .. ;\ done @sudo rm -rf /tmp/docker-* clean: rm -rf $(BUILD_PATH) debian/$(PKG_NAME)* debian/files $(BUILD_SRC) checkout.tgz bin