Files
gvm/scripts/cross
T
Ali Abbas c1ec392bdd - Double quoting to avoid globbing
- Remove unecessary $(cat)
- switch * to ./* to avoid entries with dashes to be treated as options
- replace $* with "$@"
- repeating change path serial calls - unecessary if change path is called one (get script)
2014-04-12 15:56:54 +02:00

59 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
. "$GVM_ROOT/scripts/functions"
display_usage() {
display_message "Usage: gvm cross [os] [arch]"
display_message " os = linux/darwin/windows"
display_message " arch = amd64/386 (arm unsupported)"
}
display_list() {
echo
display_usage
echo
display_message "Installed platforms:"
echo
$LS_PATH "$GOROOT/pkg" | $GREP_PATH windows_ | sed 's/^/ /g'
$LS_PATH "$GOROOT/pkg" | $GREP_PATH darwin_ | sed 's/^/ /g'
$LS_PATH "$GOROOT/pkg" | $GREP_PATH linux_ | sed 's/^/ /g'
echo
exit 1
}
which go &> /dev/null || display_fatal "Only available in versions after Go 1"
[ -z "$1" ] && display_list
if [ ! -f "$GOROOT/pkg/tool/cross" ]; then
display_message "Installing x86 and x86-64 commands"
set -e
for arch in 8 6; do
for cmd in a c g l; do
go tool dist install -v cmd/$arch$cmd ||
display_fatal "Couldn't compile tool: $arch$cmd"
done
done
touch "$GOROOT/pkg/tool/cross"
fi
export GOOS=$1
shift
[ -z "$1" ] && display_usage && display_fatal "arch is not specified"
export GOARCH=$1
if [ ! -d "$GOROOT/pkg/${GOOS}_${GOARCH}" ]; then
display_message "Installing $GOOS $GOARCH runtime library"
if [ "$GOOS" = "windows" ]; then
export CGO_ENABLED=0
fi
cd "$GOROOT/src"
go tool dist install -v pkg/runtime ||
display_fatal "Couldn't compile runtime library for $GOOS $GOARCH"
go install -v -a std ||
display_fatal "Install runtime library for $GOOS $GOARCH"
else
display_message "Runtime library already installed for $GOOS $GOARCH"
fi