Merge branch 'cross-compile' into chroot-hvm
This commit is contained in:
commit
19d0961a41
|
@ -0,0 +1,60 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# To be able to cross compile:
|
||||
# cd /usr/local/go/src
|
||||
# sudo GOOS=linux GOARCH=amd64 ./make.bash --no-clean
|
||||
#
|
||||
# This script only builds the application from source.
|
||||
set -e
|
||||
|
||||
NO_COLOR="\x1b[0m"
|
||||
OK_COLOR="\x1b[32;01m"
|
||||
ERROR_COLOR="\x1b[31;01m"
|
||||
WARN_COLOR="\x1b[33;01m"
|
||||
|
||||
# http://stackoverflow.com/questions/4023830/bash-how-compare-two-strings-in-version-format
|
||||
verify_go () {
|
||||
if [[ $1 == $2 ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
local IFS=.
|
||||
local i ver1=($1) ver2=($2)
|
||||
|
||||
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do
|
||||
ver1[i]=0
|
||||
done
|
||||
|
||||
for ((i=0; i<${#ver1[@]}; i++)); do
|
||||
if [[ -z ${ver2[i]} ]]; then
|
||||
ver2[i]=0
|
||||
fi
|
||||
if ((10#${ver1[i]} > 10#${ver2[i]})); then
|
||||
echo -e "${ERROR_COLOR}==> Required Go version $1 not installed. Found $2 instead"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
GO_MINIMUM_VERSION=1.2
|
||||
GO_INSTALLED_VERSION=$(go version | cut -d ' ' -f 3)
|
||||
GO_INSTALLED_VERSION=${GO_INSTALLED_VERSION#"go"}
|
||||
|
||||
echo -e "${OK_COLOR}==> Verifying Go"
|
||||
verify_go $GO_MINIMUM_VERSION $GO_INSTALLED_VERSION
|
||||
|
||||
# Get the parent directory of where this script is.
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"
|
||||
|
||||
# Change into that directory
|
||||
cd $DIR
|
||||
|
||||
# Compile the thing
|
||||
export XC_ARCH=amd64
|
||||
export XC_OS=linux
|
||||
./scripts/compile.sh
|
||||
|
||||
echo "-- DONE --"
|
||||
echo "Binaries are in ./pkg/linux_amd64/"
|
Loading…
Reference in New Issue