|
|
@@ -9,7 +9,7 @@ if [ -z "$SED" -o -z "$CXX" ]; then
|
|
|
exit 1
|
|
|
fi
|
|
|
echo "==== Generating lib symbols ===="
|
|
|
-INCLUDES="${TCL_INCLUDES} ${SSL_INCLUDES}"
|
|
|
+: ${INCLUDES:="${TCL_INCLUDES} ${SSL_INCLUDES}"}
|
|
|
|
|
|
mkdir -p src/.defs > /dev/null 2>&1
|
|
|
TMPFILE=$(mktemp "/tmp/pre.XXXXXX")
|
|
|
@@ -25,14 +25,20 @@ for file in ${files}; do
|
|
|
defsFile_pre="src/.defs/${basename}_pre.h"
|
|
|
defsFile_post="src/.defs/${basename}_post.h"
|
|
|
|
|
|
- rm -f $defsFile_pre $defsFile_post $defsFile_wrappers > /dev/null 2>&1
|
|
|
- : > $defsFile_pre
|
|
|
- : > $defsFile_post
|
|
|
- : > $defsFile_wrappers
|
|
|
+ rm -f "${defsFile_pre}" "${defsFile_post}" "${defsFile_wrappers}" > /dev/null 2>&1
|
|
|
+ if [ ! -f "${defsFile_pre}" ]; then
|
|
|
+ : > "${defsFile_pre}"
|
|
|
+ fi
|
|
|
+ if [ ! -f "${defsFile_post}" ]; then
|
|
|
+ : > "${defsFile_post}"
|
|
|
+ fi
|
|
|
+ if [ ! -f "${defsFile_wrappers}" ]; then
|
|
|
+ : > "${defsFile_wrappers}"
|
|
|
+ fi
|
|
|
done
|
|
|
|
|
|
-echo "{" > $exportsFile
|
|
|
-echo "bfd_exports_stub;" >> $exportsFile
|
|
|
+echo "{" > "${exportsFile}"
|
|
|
+echo "bfd_exports_stub;" >> "${exportsFile}"
|
|
|
for file in ${files}; do
|
|
|
suffix=${file##*.}
|
|
|
basename=${file%%.*}
|
|
|
@@ -45,20 +51,20 @@ for file in ${files}; do
|
|
|
defsFile_pre="src/.defs/${basename}_pre.h"
|
|
|
defsFile_post="src/.defs/${basename}_post.h"
|
|
|
|
|
|
- echo "extern \"C\" {" > $defsFile_wrappers
|
|
|
- echo "extern \"C\" {" > $defsFile_post
|
|
|
+ echo "extern \"C\" {" > "${defsFile_wrappers}"
|
|
|
+ echo "extern \"C\" {" > "${defsFile_post}"
|
|
|
|
|
|
cd src
|
|
|
- $CXX $CXXFLAGS -E -I. -I.. -I../lib ${INCLUDES} -DHAVE_CONFIG_H -DGENERATE_DEFS ../${file} > $TMPFILE
|
|
|
+ $CXX $CXXFLAGS -E -I. -I.. -I../lib ${INCLUDES} -DHAVE_CONFIG_H -DGENERATE_DEFS "../${file}" > "${TMPFILE}"
|
|
|
# Fix wrapped prototypes
|
|
|
- $SED -e :a -e N -e '$!ba' -e 's/,\n/,/g' $TMPFILE > $TMPFILE.sed
|
|
|
- mv $TMPFILE.sed $TMPFILE
|
|
|
+ $SED -e :a -e N -e '$!ba' -e 's/,\n/,/g' "${TMPFILE}" > "${TMPFILE}.sed"
|
|
|
+ mv "${TMPFILE}.sed" "${TMPFILE}"
|
|
|
cd ..
|
|
|
|
|
|
- $SED -n -e 's/.*\(DLSYM_GLOBAL[^ (]*\)(.*, \([^)]*\).*/\2 \1/p' $TMPFILE | \
|
|
|
+ $SED -n -e 's/.*\(DLSYM_GLOBAL[^ (]*\)(.*, \([^)]*\).*/\2 \1/p' "${TMPFILE}" | \
|
|
|
sort -u | while read symbol dlsym; do
|
|
|
# Check if the typedef is already defined ...
|
|
|
- typedef=$(grep "^typedef .*(\*${symbol}_t)" ${dirname}/${basename}.h) || :
|
|
|
+ typedef=$(grep "^typedef .*(\*${symbol}_t)" "${dirname}/${basename}.h") || :
|
|
|
# ... if not, generate it
|
|
|
if [ -z "$typedef" ]; then
|
|
|
if ! grep -v "DLSYM" "${TMPFILE}" | grep -qw "${symbol}"; then
|
|
|
@@ -69,7 +75,7 @@ for file in ${files}; do
|
|
|
fi
|
|
|
|
|
|
# Trim off any extern "C", trim out the variable names, cleanup whitespace issues
|
|
|
- typedef=$(grep -w "${symbol}" $TMPFILE |
|
|
|
+ typedef=$(grep -w "${symbol}" "${TMPFILE}" |
|
|
|
head -n 1 |
|
|
|
$SED \
|
|
|
-e 's/extern "C" *//' \
|
|
|
@@ -98,15 +104,15 @@ for file in ${files}; do
|
|
|
continue
|
|
|
fi
|
|
|
if [ "${dlsym}" = "DLSYM_GLOBAL_FWDCOMPAT" ]; then
|
|
|
- echo "_${symbol};" >> $exportsFile
|
|
|
+ echo "_${symbol};" >> "${exportsFile}"
|
|
|
fi
|
|
|
echo "${symbol} ${existing_typedef} ${typedef}"
|
|
|
- done | src/generate_symbol.sh $defsFile_wrappers $defsFile_pre $defsFile_post
|
|
|
+ done | src/generate_symbol.sh "${defsFile_wrappers}" "${defsFile_pre}" "${defsFile_post}"
|
|
|
|
|
|
- echo "}" >> $defsFile_wrappers
|
|
|
- echo "}" >> $defsFile_post
|
|
|
+ echo "}" >> "${defsFile_wrappers}"
|
|
|
+ echo "}" >> "${defsFile_post}"
|
|
|
|
|
|
echo "done"
|
|
|
done
|
|
|
-echo "};">> $exportsFile
|
|
|
-rm -f $TMPFILE
|
|
|
+echo "};">> "${exportsFile}"
|
|
|
+rm -f "${TMPFILE}"
|