1#! /bin/sh 2 3set -e 4 5symbols() { 6 { 7 SUMO="$1" 8 while read symbol standard sumo; do 9 found="$standard" 10 if [ "x$SUMO" = "xsumo" ]; then 11 found="$sumo" 12 fi 13 if [ "$found" = "1" ]; then 14 eval "defined_${symbol}=yes" 15 else 16 eval "defined_${symbol}=no" 17 fi 18 done < emscripten-symbols.def 19 20 nm /usr/local/lib/libsodium.23.dylib | \ 21 fgrep ' T _' | \ 22 cut -d' ' -f3 | { 23 while read symbol; do 24 eval "found=\$defined_${symbol}" 25 if [ "$found" = "yes" ]; then 26 echo "$symbol" 27 elif [ "$found" != "no" ]; then 28 echo >&2 29 echo "*** [$symbol] was not expected ***" >&2 30 echo >&2 31 exit 1 32 fi 33 done 34 } 35 } | \ 36 sort | \ 37 { 38 out='"_malloc","_free"' 39 while read symbol ; do 40 if [ ! -z "$out" ]; then 41 out="${out}," 42 fi 43 out="${out}\"${symbol}\"" 44 done 45 echo "[${out}]" 46 } 47} 48 49out=$(symbols standard) 50sed s/EXPORTED_FUNCTIONS_STANDARD=\'.*\'/EXPORTED_FUNCTIONS_STANDARD=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \ 51 mv -f emscripten.sh.tmp emscripten.sh 52 53out=$(symbols sumo) 54sed s/EXPORTED_FUNCTIONS_SUMO=\'.*\'/EXPORTED_FUNCTIONS_SUMO=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \ 55 mv -f emscripten.sh.tmp emscripten.sh 56 57chmod +x emscripten.sh 58