github.com/minio/console@v1.4.1/cross-compile.sh (about) 1 #!/bin/bash 2 3 set -e 4 # Enable tracing if set. 5 [ -n "$BASH_XTRACEFD" ] && set -x 6 7 ## All binaries are static make sure to disable CGO. 8 export CGO_ENABLED=0 9 10 ## List of architectures and OS to test cross compilation. 11 SUPPORTED_OSARCH_DEFAULTS="linux/ppc64le linux/mips64 linux/arm64 linux/s390x darwin/amd64 freebsd/amd64 windows/amd64 linux/arm linux/386 netbsd/amd64" 12 SUPPORTED_OSARCH=${1:-$SUPPORTED_OSARCH_DEFAULTS} 13 14 _build() { 15 local osarch=$1 16 IFS=/ read -r -a arr <<<"$osarch" 17 os="${arr[0]}" 18 arch="${arr[1]}" 19 package=$(go list -f '{{.ImportPath}}' ./cmd/console) 20 printf -- "--> %15s:%s\n" "${osarch}" "${package}" 21 22 # go build -trimpath to build the binary. 23 GOOS=$os GOARCH=$arch GO111MODULE=on go build -trimpath --tags=kqueue --ldflags "-s -w" -o /dev/null ./cmd/console 24 } 25 26 main() { 27 echo "Testing builds for OS/Arch: ${SUPPORTED_OSARCH}" 28 for each_osarch in ${SUPPORTED_OSARCH}; do 29 _build "${each_osarch}" 30 done 31 } 32 33 main "$@"