Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / cmd / toolstash / buildall
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