21 lines
729 B
Plaintext
21 lines
729 B
Plaintext
|
#!/bin/sh
|
||
|
file_magic=$1; shift
|
||
|
gcc=$1; shift
|
||
|
file=$1; shift
|
||
|
trap "rm -f /tmp/$$.magic" 0 1 2 15
|
||
|
cat <<EOF > $file_magic
|
||
|
/* autogenerated - do not edit */
|
||
|
#include "$file"
|
||
|
EOF
|
||
|
while [ -n "$1" ]; do
|
||
|
define=$1; shift
|
||
|
struct=$1; shift
|
||
|
sum=`$gcc -E $file | sed -n "/^$struct/,/^};/p" | sed -e 's/[ ]//g' -e '/^$/d' | sum | awk '{print "obase=16;\"0x\";", $1}' | bc | tr '[A-Z]' '[a-z]'`
|
||
|
echo "#define $define $sum"
|
||
|
curr=`sed -n "s/^#[ ]*define CURR_$define[ ][ ]*\([^ ][^ ]*\)/\1/p" $file`
|
||
|
[ "$curr" == "$sum" ] || echo "*** WARNING WARNING WARNING WARNING WARNING ***
|
||
|
*** $file: magic number changed old $curr != new $sum
|
||
|
*** WARNING WARNING WARNING WARNING WARNING ***" 1>&2
|
||
|
done >> $file_magic
|
||
|
exit 0
|