1*760c253cSXin Li#!/bin/bash 2*760c253cSXin Liset -e -o pipefail 3*760c253cSXin Li 4*760c253cSXin Li# This script builds the go cross compilers for ChromeOS targets. 5*760c253cSXin Li# 6*760c253cSXin Li# Usage: build_go 7*760c253cSXin Li# 8*760c253cSXin Li# It assumes that the "x86_64-cros-linux-gnu" toolchain is already installed. 9*760c253cSXin Li# It assumes that the "armv7a-cros-linux-gnueabihf" toolchain is 10*760c253cSXin Li# already installed. 11*760c253cSXin Li# It assumes that the "aarch64-cros-linux-gnu" toolchain is already installed. 12*760c253cSXin Li 13*760c253cSXin Liif [[ ! -e "make.bash" && -e "src/make.bash" ]] 14*760c253cSXin Lithen 15*760c253cSXin Li cd src 16*760c253cSXin Lifi 17*760c253cSXin Li 18*760c253cSXin Li# Build the Go toolchain for amd64 targets. 19*760c253cSXin LiGOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \ 20*760c253cSXin Li CC_FOR_TARGET="x86_64-cros-linux-gnu-clang" \ 21*760c253cSXin Li CXX_FOR_TARGET="x86_64-cros-linux-gnu-clang++" \ 22*760c253cSXin Li ./make.bash --no-clean 23*760c253cSXin LiGOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \ 24*760c253cSXin Li CC="x86_64-cros-linux-gnu-clang" \ 25*760c253cSXin Li CXX="x86_64-cros-linux-gnu-clang++" \ 26*760c253cSXin Li ../bin/go install -v -buildmode=pie std 27*760c253cSXin Li 28*760c253cSXin Li# Build the Go toolchain for arm targets. 29*760c253cSXin LiGOOS="linux" GOARCH="arm" CGO_ENABLED="1" \ 30*760c253cSXin Li CC_FOR_TARGET="armv7a-cros-linux-gnueabihf-clang" \ 31*760c253cSXin Li CXX_FOR_TARGET="armv7a-cros-linux-gnueabihf-clang++" \ 32*760c253cSXin Li ./make.bash --no-clean 33*760c253cSXin LiGOOS="linux" GOARCH="arm" CGO_ENABLED="1" \ 34*760c253cSXin Li CC="armv7a-cros-linux-gnueabihf-clang" \ 35*760c253cSXin Li CXX="armv7a-cros-linux-gnueabihf-clang++" \ 36*760c253cSXin Li ../bin/go install -v -buildmode=pie std 37*760c253cSXin Li 38*760c253cSXin Li# Build the Go toolchain for arm64 targets. 39*760c253cSXin LiGOOS="linux" GOARCH="arm64" CGO_ENABLED="1" \ 40*760c253cSXin Li CC_FOR_TARGET="aarch64-cros-linux-gnu-clang" \ 41*760c253cSXin Li CXX_FOR_TARGET="aarch64-cros-linux-gnu-clang++" \ 42*760c253cSXin Li ./make.bash --no-clean 43*760c253cSXin LiGOOS="linux" GOARCH="arm64" CGO_ENABLED="1" \ 44*760c253cSXin Li CC="aarch64-cros-linux-gnu-clang" \ 45*760c253cSXin Li CXX="aarch64-cros-linux-gnu-clang++" \ 46*760c253cSXin Li ../bin/go install -v -buildmode=pie std 47