mirror of
https://github.com/golang/go
synced 2024-11-20 06:14:53 -07:00
f81d471940
R=rsc, Joe Poirier CC=golang-dev https://golang.org/cl/1015043
56 lines
1.5 KiB
Bash
56 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
# Copyright 2009 The Go Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style
|
|
# license that can be found in the LICENSE file.
|
|
|
|
if test -z "$GOBIN"; then
|
|
if ! test -d "$HOME"/bin; then
|
|
echo '$GOBIN is not set and $HOME/bin is not a directory or does not exist.' 1>&2
|
|
echo 'mkdir $HOME/bin or set $GOBIN to a directory where binaries should' 1>&2
|
|
echo 'be installed.' 1>&2
|
|
exit 1
|
|
fi
|
|
GOBIN="$HOME/bin"
|
|
elif ! test -d "$GOBIN"; then
|
|
echo '$GOBIN is not a directory or does not exist' 1>&2
|
|
echo 'create it or set $GOBIN differently' 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
GOROOT=${GOROOT:-$(cd ..; pwd)}
|
|
if ! test -f "$GOROOT"/include/u.h
|
|
then
|
|
echo '$GOROOT is not set correctly or not exported' 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Double-check that we're in $GOROOT, for people with multiple Go trees.
|
|
# Various aspects of the build cd into $GOROOT-rooted paths,
|
|
# making it easy to jump to a different tree and get confused.
|
|
DIR1=$(cd ..; pwd)
|
|
DIR2=$(cd $GOROOT; pwd)
|
|
if [ "$DIR1" != "$DIR2" ]; then
|
|
echo 'Suspicious $GOROOT: does not match current directory.' 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
GOARCH=${GOARCH:-$(uname -m | sed 's/^..86$/386/; s/^.86$/386/; s/x86_64/amd64/')}
|
|
case "$GOARCH" in
|
|
amd64 | 386 | arm)
|
|
;;
|
|
*)
|
|
echo '$GOARCH is set to <'$GOARCH'>, must be amd64, 386, or arm' 1>&2
|
|
exit 1
|
|
esac
|
|
|
|
GOOS=${GOOS:-$(uname | tr A-Z a-z)}
|
|
case "$GOOS" in
|
|
darwin | freebsd | linux | windows | nacl)
|
|
;;
|
|
*)
|
|
echo '$GOOS is set to <'$GOOS'>, must be darwin, freebsd, linux, windows, or nacl' 1>&2
|
|
exit 1
|
|
esac
|
|
|
|
export GOBIN GOROOT GOARCH GOOS
|