| 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 |