2021-03-03 02:03:02 -05:00
|
|
|
#!/usr/bin/env sh
|
2017-05-11 18:52:17 -04:00
|
|
|
#
|
|
|
|
# Build a static binary for the host OS/ARCH
|
|
|
|
#
|
2017-05-09 12:38:23 -04:00
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
set -eu
|
2017-05-09 12:38:23 -04:00
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
: "${CGO_ENABLED=}"
|
|
|
|
: "${GO_LINKMODE=static}"
|
|
|
|
: "${GO_BUILDMODE=}"
|
|
|
|
: "${GO_BUILDTAGS=}"
|
|
|
|
: "${GO_STRIP=}"
|
2017-05-11 18:52:17 -04:00
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
. ./scripts/build/.variables
|
2017-05-11 18:52:17 -04:00
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
if [ -z "$CGO_ENABLED" ]; then
|
|
|
|
case "$(go env GOOS)" in
|
|
|
|
linux)
|
|
|
|
case "$(go env GOARCH)" in
|
|
|
|
amd64|arm64|arm|s390x)
|
|
|
|
CGO_ENABLED=1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
CGO_ENABLED=0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
darwin|windows)
|
|
|
|
CGO_ENABLED=1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
CGO_ENABLED=0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
export CGO_ENABLED
|
|
|
|
if [ "$CGO_ENABLED" = "1" ] && [ "$(go env GOOS)" != "windows" ]; then
|
|
|
|
case "$(go env GOARCH)" in
|
|
|
|
mips*|ppc64)
|
|
|
|
# pie build mode is not supported on mips architectures
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
GO_BUILDMODE="-buildmode=pie"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
GO_BUILDTAGS="$GO_BUILDTAGS pkcs11"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$CGO_ENABLED" = "1" ] && [ "$GO_LINKMODE" = "static" ] && [ "$(go env GOOS)" = "linux" ]; then
|
|
|
|
LDFLAGS="$LDFLAGS -extldflags -static"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "$GO_STRIP" ]; then
|
|
|
|
LDFLAGS="$LDFLAGS -s -w"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Building $GO_LINKMODE $(basename "${TARGET}")"
|
|
|
|
|
|
|
|
export GO111MODULE=auto
|
|
|
|
|
2021-10-11 10:54:09 -04:00
|
|
|
if [ "$(go env GOOS)" = "windows" ]; then
|
|
|
|
if [ ! -x "$(command -v goversioninfo)" ]; then
|
|
|
|
>&2 echo "goversioninfo not found, skipping manifesting binary"
|
|
|
|
else
|
|
|
|
./scripts/build/mkversioninfo
|
|
|
|
(set -x ; go generate -v "${SOURCE}")
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
(set -x ; go build -o "${TARGET}" -tags "${GO_BUILDTAGS}" --ldflags "${LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}")
|
2021-03-03 02:03:02 -05:00
|
|
|
|
|
|
|
ln -sf "$(basename "${TARGET}")" "$(dirname "${TARGET}")/docker"
|