|
|
@@ -1,4 +1,4 @@
|
|
|
-#! /bin/bash
|
|
|
+#! /bin/sh
|
|
|
|
|
|
if [ -z "$SED" -o -z "$CXX" ]; then
|
|
|
echo "This must be ran by configure" >&2
|
|
|
@@ -26,11 +26,13 @@ for file in $(grep -l DLSYM_GLOBAL src/*.c|grep -v "src/_"); do
|
|
|
echo "extern \"C\" {" > $defsFile_wrappers
|
|
|
echo "extern \"C\" {" > $defsFile_post
|
|
|
touch $defsFile_pre
|
|
|
- pushd src >/dev/null 2>&1
|
|
|
+ cd src >/dev/null 2>&1
|
|
|
$CXX -E -I. -I.. -I../lib ${INCLUDES} -DHAVE_CONFIG_H ../${file} > $TMPFILE
|
|
|
# Fix wrapped prototypes
|
|
|
- $SED -i -e ':a;N;$!ba;s/,\n/,/g' $TMPFILE
|
|
|
- popd >/dev/null 2>&1
|
|
|
+ $SED -e :a -e N -e '$!ba' -e 's/,\n/,/g' $TMPFILE > $TMPFILE.sed
|
|
|
+ mv $TMPFILE.sed $TMPFILE
|
|
|
+
|
|
|
+ cd .. >/dev/null 2>&1
|
|
|
|
|
|
for symbol in $($SED -n -e 's/.*DLSYM_GLOBAL(.*, \([^)]*\).*/\1/p' $file|sort -u); do
|
|
|
echo "#define ${symbol} ORIGINAL_SYMBOL_${symbol}" >> $defsFile_pre
|
|
|
@@ -40,7 +42,7 @@ for file in $(grep -l DLSYM_GLOBAL src/*.c|grep -v "src/_"); do
|
|
|
# ... if not, generate it
|
|
|
if [ -z "$typedef" ]; then
|
|
|
# Trim off any extern "C", trim out the variable names, cleanup whitespace issues
|
|
|
- typedef=$($SED -n -e "/\<${symbol}\>/p" $TMPFILE | head -n 1 | $SED -e 's/extern "C" *//' -e "s/\(.*\) *${symbol} *(\(.*\));\?/typedef \1 (*${symbol}_t)(\2);/" -e 's/[_0-9A-Za-z]*\(,\)/\1/g' -e 's/[_0-9A-Za-z]*\();\)/\1/g' -e 's/ */ /g' -e 's/ \([,)]\)/\1/g' -e 's/ *()/(void)/g')
|
|
|
+ typedef=$(grep -w "${symbol}" $TMPFILE | head -n 1 | $SED -e 's/extern "C" *//' -e "s/\(.*\) *${symbol} *(\(.*\));\?/typedef \1 (*${symbol}_t)(\2);/" -e 's/[_0-9A-Za-z]*\(,\)/\1/g' -e 's/[_0-9A-Za-z]*\();\)/\1/g' -e 's/ */ /g' -e 's/ \([,)]\)/\1/g' -e 's/ *()/(void)/g')
|
|
|
echo "$typedef" >> $defsFile_post
|
|
|
fi
|
|
|
|