#!/bin/rc
# 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='mk.deps'
TMP='mk.deps.tmp'
if(test -f $OUT && ! test -w $OUT){
echo $0: $OUT 'is read-only; aborting.' >[1=2]
exit 1
}
# Get list of directories from Makefile
dirs=`{sed '1,/^DIRS=/d; /^$/,$d; s/\\//g' mkfile}
dirpat=`{echo $dirs | sed 's/ /|/g; s/.*/^(&)$/'}
wd=`{pwd}
{
for(dir in $dirs){
cd $dir || exit 1
sources=`{sed -n 's/\.go\\/.go/p' mkfile}
sources=`{ls $sources >[2] /dev/null} # remove .s, .c, etc.
deps=`{
sed -n '/^import.*"/p; /^import[ \t]*\(/,/^\)/p' $sources /dev/null |
sed 's/[ ;"\(\)]/\n/g' |
sed '/^$/d' |
grep $dirpat |
grep -v '^'^$dir^'$' |
sed 's/$/.install/' |
sort -u
}
echo $dir.install: $deps
cd $wd
}
} > $TMP
mv $TMP $OUT
|