X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=ia32rtools.git;a=blobdiff_plain;f=run_mkpubinc.sh;h=2935d7d5d2582076a5fde6410722f4906cf03fda;hp=dc016c953f4e796f39c0610fa78661f50bd699e2;hb=ee554c95296119b6b8d82856fbb09ffb8c9dc419;hpb=beb04e26b3ba6208551d98ce78689464bb1100a4 diff --git a/run_mkpubinc.sh b/run_mkpubinc.sh index dc016c9..2935d7d 100755 --- a/run_mkpubinc.sh +++ b/run_mkpubinc.sh @@ -1,9 +1,13 @@ #!/bin/sh set -e -echo -n > $1 +public_inc=$1 +asm=$2 +c_list=$3 -cat $2 | fromdos | sed -e \ +echo -n > $public_inc + +cat $asm | fromdos | sed -e \ '1,/^_rdata.*segment/d;/^_data.*\/q;/^[[:blank:];]/d;/^;/d;/^_r\?data\>/d;' | awk '{print $1}' | \ while read a; do test -z "$a" && continue @@ -18,18 +22,27 @@ while read a; do ;; esac - echo "_$a equ $a" >> $1 - echo "PUBLIC _$a" >> $1 + echo "_$a equ $a" >> $public_inc + echo "PUBLIC _$a" >> $public_inc done -if test -n "$3"; then - echo "; funcs called from C" >> $1 +if test -n "$c_list"; then + # make a list of functions in asm + grep '\' $asm | awk '{print $1}' | grep -v '\ ${asm}_funcs || true + + echo "; funcs called from C" >> $public_inc - cat $3 | \ + cat $c_list | \ while read a; do -# echo "_$a equ $a" >> $1 -# echo "PUBLIC _$a" >> $1 - a=`echo $a | awk -F@ '{print $1}'` - echo "PUBLIC $a" >> $1 + name=`echo $a | awk -F@ '{print $1}'` + n=`grep "\<$name\>" ${asm}_funcs` || \ + n=`grep "\<_$name\>" ${asm}_funcs` || true + if test -z "$n"; then + echo "\"$name\" is expected to be in asm, but was not found" + rm $public_inc + exit 1 + fi + echo "PUBLIC $n" >> $public_inc done fi