#!/bin/bash
set -e

BINARY_NAME="docker-$VERSION"
BINARY_EXTENSION="$(binary_extension)"
BINARY_FULLNAME="$BINARY_NAME$BINARY_EXTENSION"

source "${MAKEDIR}/.go-autogen"

if [[ "${BUILDFLAGS[@]}" =~ 'netgo ' ]]; then
	EXTLDFLAGS_STATIC+=' -lnetgo'
fi
# gccgo require explicit flag -pthread to allow goroutines to work.
go build -compiler=gccgo \
	-o "$DEST/$BINARY_FULLNAME" \
	"${BUILDFLAGS[@]}" \
	-gccgoflags "
		-g
		$EXTLDFLAGS_STATIC
		-Wl,--no-export-dynamic
		-ldl
		-pthread
	" \
	./docker

echo "Created binary: $DEST/$BINARY_FULLNAME"
ln -sf "$BINARY_FULLNAME" "$DEST/docker$BINARY_EXTENSION"

hash_files "$DEST/$BINARY_FULLNAME"

# Add nested executables to bundle dir so we have complete set of
# them available, but only if the native OS/ARCH is the same as the
# OS/ARCH of the build target
if [ "$(go env GOOS)/$(go env GOARCH)" == "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" ]; then
    echo "Copying nested executables into $DEST"
    (set -x
    if [ -x /usr/local/bin/runc ]; then
        cp /usr/local/bin/runc $DEST/
        cp /usr/local/bin/ctr $DEST/
        cp /usr/local/bin/containerd $DEST/
        cp /usr/local/bin/containerd-shim $DEST/
    fi
    )
fi
