github.com/april1989/origin-go-tools@v0.0.32/cmd/toolstash/buildall (about)

     1  #!/bin/bash
     2  
     3  # Usage: buildall [-e] [-nocmp] [-work]
     4  #
     5  # Builds everything (std) for every GOOS/GOARCH combination but installs nothing.
     6  #
     7  # By default, runs the builds with -toolexec 'toolstash -cmp', to test that the
     8  # toolchain is producing bit identical output to a previous known good toolchain.
     9  #
    10  # Options:
    11  #	-e: stop at first failure
    12  #	-nocmp: turn off toolstash -cmp; just check that ordinary builds succeed
    13  #	-work: pass -work to go command
    14  
    15  sete=false
    16  if [ "$1" = "-e" ]; then
    17  	sete=true
    18  	shift
    19  fi
    20  
    21  cmp=true
    22  if [ "$1" = "-nocmp" ]; then
    23  	cmp=false
    24  	shift
    25  fi
    26  
    27  work=""
    28  if [ "$1" = "-work" ]; then
    29  	work="-work"
    30  	shift
    31  fi
    32  
    33  cd $(go env GOROOT)/src
    34  go install cmd/compile cmd/link cmd/asm || exit 1
    35  pattern="$1"
    36  if [ "$pattern" = "" ]; then
    37  	pattern=.
    38  fi
    39  
    40  targets="$(go tool dist list; echo linux/386/387)"
    41  targets="$(echo "$targets" | tr '/' '-' | sort | egrep "$pattern" | egrep -v 'android-arm|darwin-arm')"
    42  
    43  # put linux, nacl first in the target list to get all the architectures up front.
    44  targets="$(echo "$targets" | egrep 'linux|nacl') $(echo "$targets" | egrep -v 'linux|nacl')"
    45  
    46  if [ "$sete" = true ]; then
    47  	set -e
    48  fi
    49  for target in $targets
    50  do
    51  	echo $target
    52  	export GOOS=$(echo $target | sed 's/-.*//')
    53  	export GOARCH=$(echo $target | sed 's/.*-//')
    54  	unset GO386
    55  	if [ "$GOARCH" = "387" ]; then
    56  		export GOARCH=386
    57  		export GO386=387
    58  	fi
    59  	if $cmp; then
    60  		if [ "$GOOS" = "android" ]; then
    61  			go build $work -a -toolexec 'toolstash -cmp' std
    62  		else
    63  			go build $work -a -toolexec 'toolstash -cmp' std cmd
    64  		fi
    65  	else
    66  		go build $work -a std
    67  	fi
    68  done