|  | #!/usr/bin/env bash | 
|  | # Copyright 2009 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. | 
|  |  | 
|  | OUT="Make.deps" | 
|  | TMP="Make.deps.tmp" | 
|  |  | 
|  | if [ -f $OUT ] && ! [ -w $OUT ]; then | 
|  | echo "$0: $OUT is read-only; aborting." 1>&2 | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | # Get list of directories from Makefile | 
|  | dirs=$(sed '1,/^DIRS=/d; /^$/,$d; s/\\//g' Makefile) | 
|  | dirs2=$(sed '1,/^DIRS=/d; /^$/,$d; s/\\//g' $GOROOT/src/pkg/Makefile) | 
|  | dirpat=$(echo $dirs $dirs2 | sed 's/ /|/g; s/.*/^(&)$/') | 
|  |  | 
|  | for dir in $dirs; do ( | 
|  | cd $dir || exit 1 | 
|  |  | 
|  | sources=$(sed -n 's/\.go\\/.go/p' Makefile) | 
|  | sources=$(ls $sources 2> /dev/null)  # remove .s, .c, etc. | 
|  |  | 
|  | deps=$( | 
|  | sed -n '/^import.*"/p; /^import[ \t]*(/,/^)/p' $sources /dev/null | | 
|  | cut -d '"' -f2 | | 
|  | egrep "$dirpat" | | 
|  | grep -v "^$dir\$" | | 
|  | sed 's/$/.install/' | | 
|  | sort -u | 
|  | ) | 
|  |  | 
|  | echo $dir.install: $deps | 
|  | ) done > $TMP | 
|  |  | 
|  | for dir in $dirs2; do ( | 
|  | echo $dir.install: \${GOROOT}/pkg/\${GOOS}_\${GOARCH}/${dir}.a | 
|  | ) done >> $TMP | 
|  |  | 
|  | mv $TMP $OUT |