xref: /aosp_15_r20/external/toolchain-utils/go/chromeos/build_go (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
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