blob: 71d3c371e48eba2d4ae7d603567b211b24c93df0 [file] [log] [blame]
#!/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