|
@@ -5,17 +5,22 @@ echo "Generating lib symbols"
|
|
|
mkdir -p src/.defs > /dev/null 2>&1
|
|
mkdir -p src/.defs > /dev/null 2>&1
|
|
|
|
|
|
|
|
for file in $(git grep -l DLSYM_GLOBAL|grep "\.c$"); do
|
|
for file in $(git grep -l DLSYM_GLOBAL|grep "\.c$"); do
|
|
|
- defsFile="src/.defs/$(basename $file .c)_defs.c"
|
|
|
|
|
- cat > $defsFile << EOF
|
|
|
|
|
-extern "C" {
|
|
|
|
|
-EOF
|
|
|
|
|
|
|
+ defsFile_wrappers="src/.defs/$(basename $file .c)_defs.c"
|
|
|
|
|
+ defsFile_pre="src/.defs/$(basename $file .c)_pre.h"
|
|
|
|
|
+ defsFile_post="src/.defs/$(basename $file .c)_post.h"
|
|
|
|
|
+
|
|
|
|
|
+ rm -f $defsFile_pre $defsFile_post > /dev/null 2>&1
|
|
|
|
|
+
|
|
|
|
|
+ echo "extern \"C\" {" > $defsFile_wrappers
|
|
|
|
|
+ echo "extern \"C\" {" > $defsFile_post
|
|
|
|
|
|
|
|
for symbol in $(sed -n -e 's/.*DLSYM_GLOBAL(.*, \([^)]*\).*/\1/p' $file|sort -u); do
|
|
for symbol in $(sed -n -e 's/.*DLSYM_GLOBAL(.*, \([^)]*\).*/\1/p' $file|sort -u); do
|
|
|
- grep "^typedef .*(\*${symbol}_t)" $(dirname $file)/$(basename $file .c).h | src/generate_symbol.sh
|
|
|
|
|
- done >> $defsFile
|
|
|
|
|
|
|
+ echo "#define ${symbol} ORIGINAL_SYMBOL_${symbol}" >> $defsFile_pre
|
|
|
|
|
+ echo "#undef ${symbol}" >> $defsFile_post
|
|
|
|
|
+ grep "^typedef .*(\*${symbol}_t)" $(dirname $file)/$(basename $file .c).h | src/generate_symbol.sh >> $defsFile_wrappers 2>> $defsFile_post
|
|
|
|
|
+ done
|
|
|
|
|
|
|
|
- cat >> $defsFile << EOF
|
|
|
|
|
-}
|
|
|
|
|
-EOF
|
|
|
|
|
|
|
+ echo "}" >> $defsFile_wrappers
|
|
|
|
|
+ echo "}" >> $defsFile_post
|
|
|
done
|
|
done
|
|
|
|
|
|