mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
927e1e98b7
We're having to override it in so many places that it no longer seems worthwhile to bother. On top of that, the reason we did it in the first place was for being able to compile devicemapper statically, which still works after this change (either due to other changes in the way we build, or improvements in Go itself). Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
53 lines
1.5 KiB
Bash
53 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
BINARY_NAME="docker-$VERSION"
|
|
BINARY_EXTENSION="$(binary_extension)"
|
|
BINARY_FULLNAME="$BINARY_NAME$BINARY_EXTENSION"
|
|
|
|
source "${MAKEDIR}/.go-autogen"
|
|
|
|
(
|
|
if [ "$(go env GOOS)/$(go env GOARCH)" != "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" ]; then
|
|
# must be cross-compiling!
|
|
case "$(go env GOOS)/$(go env GOARCH)" in
|
|
windows/amd64)
|
|
export CC=x86_64-w64-mingw32-gcc
|
|
export CGO_ENABLED=1
|
|
export LDFLAGS_STATIC_DOCKER="$LDFLAGS_STATIC_DOCKER -linkmode internal -extld=${CC}"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if [ "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" == "windows/amd64" ] && [ "$(go env GOOS)" == "windows" ]; then
|
|
# native compilation of Windows on Windows with golang 1.5+ needs linkmode internal
|
|
# https://github.com/golang/go/issues/13070
|
|
export LDFLAGS_STATIC_DOCKER="$LDFLAGS_STATIC_DOCKER -linkmode=internal"
|
|
fi
|
|
|
|
if [ "$IAMSTATIC" == "true" ] && [ "$(go env GOHOSTOS)" == "linux" ] && [ "$DOCKER_EXPERIMENTAL" ]; then
|
|
if [ "${GOOS}/${GOARCH}" == "darwin/amd64" ]; then
|
|
export CGO_ENABLED=1
|
|
export CC=o64-clang
|
|
export LDFLAGS='-linkmode external -s'
|
|
export LDFLAGS_STATIC_DOCKER='-extld='${CC}
|
|
else
|
|
export BUILDFLAGS=( "${BUILDFLAGS[@]/pkcs11 /}" ) # we cannot dlopen in pkcs11 in a static binary
|
|
fi
|
|
fi
|
|
|
|
echo "Building: $DEST/$BINARY_FULLNAME"
|
|
go build \
|
|
-o "$DEST/$BINARY_FULLNAME" \
|
|
"${BUILDFLAGS[@]}" \
|
|
-ldflags "
|
|
$LDFLAGS
|
|
$LDFLAGS_STATIC_DOCKER
|
|
" \
|
|
./docker
|
|
)
|
|
|
|
echo "Created binary: $DEST/$BINARY_FULLNAME"
|
|
ln -sf "$BINARY_FULLNAME" "$DEST/docker$BINARY_EXTENSION"
|
|
|
|
hash_files "$DEST/$BINARY_FULLNAME"
|