aboutsummaryrefslogtreecommitdiff
path: root/go/chromeos/build_go
diff options
context:
space:
mode:
Diffstat (limited to 'go/chromeos/build_go')
-rwxr-xr-xgo/chromeos/build_go45
1 files changed, 45 insertions, 0 deletions
diff --git a/go/chromeos/build_go b/go/chromeos/build_go
new file mode 100755
index 00000000..cb882eaf
--- /dev/null
+++ b/go/chromeos/build_go
@@ -0,0 +1,45 @@
+#!/bin/bash
+set -e -o pipefail
+
+# This script builds the go cross compilers for ChromeOS targets.
+#
+# Usage: build_go
+#
+# It assumes that the "x86_64-cros-linux-gnu" toolchain is already installed.
+# It assumes that the "i686-pc-linux-gnu" toolchain is already installed.
+# It assumes that the "armv7a-cros-linux-gnueabi" toolchain is already installed.
+
+if [[ ! -e "make.bash" && -e "src/make.bash" ]]
+then
+ cd src
+fi
+
+# Build the Go toolchain for amd64 targets.
+GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \
+ CC_FOR_TARGET="x86_64-cros-linux-gnu-gcc" \
+ CXX_FOR_TARGET="x86_64-cros-linux-gnu-g++" \
+ ./make.bash --no-clean
+GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \
+ CC="x86_64-cros-linux-gnu-gcc" \
+ CXX="x86_64-cros-linux-gnu-g++" \
+ ../bin/go install -v -buildmode=pie std
+
+# Build the Go toolchain for 386 targets.
+GOOS="linux" GOARCH="386" CGO_ENABLED="1" \
+ CC_FOR_TARGET="i686-pc-linux-gnu-gcc" \
+ CXX_FOR_TARGET="i686-pc-linux-gnu-g++" \
+ ./make.bash --no-clean
+GOOS="linux" GOARCH="386" CGO_ENABLED="1" \
+ CC="i686-pc-linux-gnu-gcc" \
+ CXX="i686-pc-linux-gnu-g++" \
+ ../bin/go install -v -buildmode=pie std
+
+# Build the Go toolchain for arm targets.
+GOOS="linux" GOARCH="arm" CGO_ENABLED="1" \
+ CC_FOR_TARGET="armv7a-cros-linux-gnueabi-gcc" \
+ CXX_FOR_TARGET="armv7a-cros-linux-gnueabi-g++" \
+ ./make.bash --no-clean
+GOOS="linux" GOARCH="arm" CGO_ENABLED="1" \
+ CC="armv7a-cros-linux-gnueabi-gcc" \
+ CXX="armv7a-cros-linux-gnueabi-g++" \
+ ../bin/go install -v -buildmode=pie std