generate_defs.sh 884 B

1234567891011121314151617181920212223242526
  1. #! /bin/bash
  2. echo "Generating lib symbols"
  3. mkdir -p src/.defs > /dev/null 2>&1
  4. for file in $(grep -l DLSYM_GLOBAL src/*.c|grep -v "src/_"); do
  5. defsFile_wrappers="src/.defs/$(basename $file .c)_defs.c"
  6. defsFile_pre="src/.defs/$(basename $file .c)_pre.h"
  7. defsFile_post="src/.defs/$(basename $file .c)_post.h"
  8. rm -f $defsFile_pre $defsFile_post > /dev/null 2>&1
  9. echo "extern \"C\" {" > $defsFile_wrappers
  10. echo "extern \"C\" {" > $defsFile_post
  11. for symbol in $(sed -n -e 's/.*DLSYM_GLOBAL(.*, \([^)]*\).*/\1/p' $file|sort -u); do
  12. echo "#define ${symbol} ORIGINAL_SYMBOL_${symbol}" >> $defsFile_pre
  13. echo "#undef ${symbol}" >> $defsFile_post
  14. grep "^typedef .*(\*${symbol}_t)" $(dirname $file)/$(basename $file .c).h | src/generate_symbol.sh >> $defsFile_wrappers 2>> $defsFile_post
  15. done
  16. echo "}" >> $defsFile_wrappers
  17. echo "}" >> $defsFile_post
  18. done