#!/bin/bash set -e # explicit list of os/arch combos that support being a daemon declare -A daemonSupporting daemonSupporting=( [linux/amd64]=1 [windows/amd64]=1 ) # if we have our linux/amd64 version compiled, let's symlink it in if [ -x "$DEST/../binary-daemon/dockerd-$VERSION" ]; then mkdir -p "$DEST/linux/amd64" ( cd "$DEST/linux/amd64" ln -s ../../../binary-daemon/* ./ ln -s ../../../binary-client/* ./ ) echo "Created symlinks:" "$DEST/linux/amd64/"* fi for platform in $DOCKER_CROSSPLATFORMS; do ( export DEST="$DEST/$platform" # bundles/VERSION/cross/GOOS/GOARCH/docker-VERSION mkdir -p "$DEST" ABS_DEST="$(cd "$DEST" && pwd -P)" export GOOS=${platform%/*} export GOARCH=${platform##*/} # !!! TEMPORARY HACK !!! # See Dockerfile if [ "$platform" == "windows/amd64" ]; then export GOROOT="/usr/local/go${HACK_GO_VERSION}" export PATH=$(echo "$PATH" | sed "s,:/usr/local/go/bin:,:/usr/local/go${HACK_GO_VERSION}/bin:,") fi if [ -z "${daemonSupporting[$platform]}" ]; then # we just need a simple client for these platforms export LDFLAGS_STATIC_DOCKER="" # remove the "daemon" build tag from platforms that aren't supported export BUILDFLAGS=( "${ORIG_BUILDFLAGS[@]/ daemon/}" ) source "${MAKEDIR}/binary-client" else source "${MAKEDIR}/binary-client" source "${MAKEDIR}/binary-daemon" fi ) done