#!/bin/bash # Copyright 2015 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. set -e # We need to test enough GOOS/GOARCH combinations to pick up all the # package dependencies. gooslist="windows linux darwin solaris" goarchlist="386 amd64 arm arm64 ppc64" echo NOTE: errors about loading internal/syscall/windows are ok deps_of() { for goos in $gooslist do for goarch in $goarchlist do GOOS=$goos GOARCH=$goarch go list -tags cmd_go_bootstrap -f '{{range .Deps}}{{$.ImportPath}} {{.}} {{end}}' $* done done | sort -u | grep . | grep -v ' unsafe$' } all="$(deps_of cmd/go | awk '{print $2}') cmd/go" deps_of $all >tmp.all.deps ( echo '// generated by mkdeps.bash' echo echo 'package main' echo echo 'var builddeps = map[string][]string{' for pkg in $all do echo -n "\"$pkg\": {" for dep in $(awk -v pkg=$pkg '$1==pkg {print $2}' tmp.all.deps) do echo -n "\"$dep\"," done echo '},' done echo '}' ) |gofmt >deps.go rm -f tmp.all.deps