--- /dev/null
+#!/bin/sh
+
+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=$(make --no-print-directory echo-dirs)
+dirpat=$(echo $dirs C | awk '{
+ for(i=1;i<=NF;i++){
+ x=$i
+ gsub("/", "\\/", x)
+ printf("/^(epoint\\/%s)$/\n", x)
+ }
+}')
+
+for dir in $dirs; do (
+ cd $dir >/dev/null || exit 1
+
+ sources=$(sed -n 's/^[ ]*\([^ ]*\.go\)[ ]*\\*[ ]*$/\1/p' Makefile)
+ sources=$(echo $sources | sed 's/\$(GOOS)/'$GOOS'/g')
+ sources=$(echo $sources | sed 's/\$(GOARCH)/'$GOARCH'/g')
+ # /dev/null here means we get an empty dependency list if $sources is empty
+ # instead of listing every file in the directory.
+ sources=$(ls $sources /dev/null 2> /dev/null) # remove .s, .c, etc.
+
+ deps=$(
+ sed -n '/^import.*"/p; /^import[ \t]*(/,/^)/p' $sources /dev/null |
+ cut -d '"' -f2 |
+ awk "$dirpat" |
+ grep -v "^$dir\$" |
+ sed 's/epoint\///;s/$/.install/' |
+ sort -u
+ )
+
+ echo $dir.install: $deps
+) done > $TMP
+
+mv $TMP $OUT