| #!/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 |
| arch=$(go env GOHOSTARCH) |
| mkdir -p "$DEST/linux/${arch}" |
| ( |
| cd "$DEST/linux/${arch}" |
| ln -s ../../../binary-daemon/* ./ |
| ln -s ../../../binary-client/* ./ |
| ) |
| echo "Created symlinks:" "$DEST/linux/${arch}/"* |
| fi |
| |
| for platform in $DOCKER_CROSSPLATFORMS; do |
| ( |
| export KEEPDEST=1 |
| 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##*/} |
| |
| if [ "$GOOS" != "solaris" ]; then |
| # TODO. Solaris cannot be cross build because of CGO calls. |
| 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 |
| fi |
| ) |
| done |