#!/bin/sh

export LANG=C
export LC_CTYPE=C

T=`mktemp`
T1=`mktemp`
T2=`mktemp`

for s in "$@"; do
    FILENAME=`basename $s`
    nm -D "$s" > $T
    sed -e "s!^         . \(.*\)\$!req\t$FILENAME\t\1!" < $T | grep ^req >> $T1
    sed -e "s!^[0-9a-f][0-9a-f]* . \(.*\)\$!provides\t$FILENAME\t\1!" < $T | grep ^provides >> $T2
done

rm -f $T
T3=`mktemp`
T4=`mktemp`
awk '{print $4, $2}' < $T1 | sort -k1 > $T3
awk '{print $3, $2}' < $T2 | sort -k1 > $T4
rm -f $T1 $T2

echo "digraph test {"
echo "rankdir=BT;" 
echo "mclimit=10;" 
echo "ranksep=1.5;" 
echo "overlap=false;" 
echo "spline=true;" 
echo "node [fontsize=30];" 

join $T3 $T4 | awk '{ print $2, $3 }' | sort -u | sed 's/\(.*\) \(.*\)/"\1" -> "\2"/'
rm -f $T3 $T4
echo "}" 
