| #!/usr/bin/env bash |
| set -e |
| |
| BINARY_NAME="$BINARY_SHORT_NAME-$VERSION" |
| BINARY_EXTENSION="$(binary_extension)" |
| BINARY_FULLNAME="$BINARY_NAME$BINARY_EXTENSION" |
| |
| source "${MAKEDIR}/.go-autogen" |
| |
| ( |
| export GOGC=${DOCKER_BUILD_GOGC:-1000} |
| |
| 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 |
| ;; |
| esac |
| fi |
| |
| if [ "$IAMSTATIC" == "true" ] && [ "$(go env GOHOSTOS)" == "linux" ]; 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 |
| " \ |
| $GO_PACKAGE |
| ) |
| |
| echo "Created binary: $DEST/$BINARY_FULLNAME" |
| ln -sf "$BINARY_FULLNAME" "$DEST/$BINARY_SHORT_NAME$BINARY_EXTENSION" |
| |
| hash_files "$DEST/$BINARY_FULLNAME" |