...
Run Format

Text file src/buildall.bash

Documentation: Index

     1	#!/usr/bin/env bash
     2	# Copyright 2015 The Go Authors. All rights reserved.
     3	# Use of this source code is governed by a BSD-style
     4	# license that can be found in the LICENSE file.
     5	
     6	# Usage: buildall.sh [-e] [pattern]
     7	#
     8	# buildall.bash builds the standard library for all Go-supported
     9	# architectures. It is used by the "all-compile" trybot builder,
    10	# as a smoke test to quickly flag portability issues.
    11	#
    12	# Options:
    13	#   -e: stop at first failure
    14	
    15	if [ ! -f run.bash ]; then
    16		echo 'buildall.bash must be run from $GOROOT/src' 1>&2
    17		exit 1
    18	fi
    19	
    20	sete=false
    21	if [ "$1" = "-e" ]; then
    22		sete=true
    23		shift
    24	fi
    25	
    26	if [ "$sete" = true ]; then
    27		set -e
    28	fi
    29	
    30	pattern="$1"
    31	if [ "$pattern" = "" ]; then
    32		pattern=.
    33	fi
    34	
    35	./make.bash || exit 1
    36	GOROOT="$(cd .. && pwd)"
    37	
    38	gettargets() {
    39		../bin/go tool dist list | sed -e 's|/|-|'
    40		echo linux-386-387
    41		echo linux-arm-arm5
    42	}
    43	
    44	selectedtargets() {
    45		gettargets | egrep -v 'android-arm|darwin-arm' | egrep "$pattern"
    46	}
    47	
    48	# put linux, nacl first in the target list to get all the architectures up front.
    49	linux_nacl_targets() {
    50		selectedtargets | egrep 'linux|nacl' | sort
    51	}
    52	
    53	non_linux_nacl_targets() {
    54		selectedtargets | egrep -v 'linux|nacl' | sort
    55	}
    56	
    57	# Note words in $targets are separated by both newlines and spaces.
    58	targets="$(linux_nacl_targets) $(non_linux_nacl_targets)"
    59	
    60	failed=false
    61	for target in $targets
    62	do
    63		echo ""
    64		echo "### Building $target"
    65		export GOOS=$(echo $target | sed 's/-.*//')
    66		export GOARCH=$(echo $target | sed 's/.*-//')
    67		unset GO386 GOARM
    68		if [ "$GOARCH" = "arm5" ]; then
    69			export GOARCH=arm
    70			export GOARM=5
    71		fi
    72		if [ "$GOARCH" = "387" ]; then
    73			export GOARCH=386
    74			export GO386=387
    75		fi
    76		if ! "$GOROOT/bin/go" build -a std cmd; then
    77			failed=true
    78			if $sete; then
    79				exit 1
    80			fi
    81		fi
    82	done
    83	
    84	if [ "$failed" = "true" ]; then
    85		echo "" 1>&2
    86		echo "Build(s) failed." 1>&2
    87		exit 1
    88	fi

View as plain text