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