minor fixes
[ia32rtools.git] / run_imp.sh
CommitLineData
60f7539b 1#!/bin/sh
2
d82ba302 3# warning: i686-w64-mingw32- on Ubuntu 14.04
4# contains broken InterlockedDecrement
5test -n "$mingwb" || mingwb=i686-w64-mingw32
6bda240a 6
296d81f8 7target_s=$1
8src_asm=$2
9implist=${target_s}_implist
10tmpsym=${target_s}_tmpsym
11shift 2
60f7539b 12
296d81f8 13grep 'extrn ' $src_asm | awk '{print $2}' | \
14 awk -F: '{print $1}' > $implist
60f7539b 15
296d81f8 16echo ".data" > $target_s
17echo ".align 4" >> $target_s
18
19cat $implist | while read i; do
20 rm -f $tmpsym
60f7539b 21 case $i in
22 __imp_*)
23 si=`echo $i | cut -c 7-`
24 ;;
25 *)
26 si=$i
27 ;;
28 esac
29
3947cf24 30 grep -e "\<_\?_$si\>" -e "@$si\>" /usr/$mingwb/lib/lib* "$@" | awk '{print $3}' | \
60f7539b 31 while read f; do
3947cf24 32 sym=`${mingwb}-nm $f | grep -e "\<_\?_$si\>" -e " @$si\>" | grep ' T ' | awk '{print $3}'`
60f7539b 33 if test -n "$sym"; then
296d81f8 34 echo $sym > $tmpsym
60f7539b 35 break
36 fi
37 done
296d81f8 38 sym=`cat $tmpsym`
60f7539b 39 if test -z "$sym"; then
1fe8d40e 40 # could be a data import
41 if test -n "$data_symf" && grep -q "$si" $data_symf; then
42 continue
43 else
44 echo "$target_s: no file/sym for $i"
45 rm $target_s
46 exit 1
47 fi
60f7539b 48 fi
49
296d81f8 50 echo ".globl $i" >> $target_s
51 echo "$i:" >> $target_s
52 echo " .long $sym" >> $target_s
53 echo >> $target_s
60f7539b 54done