buildbot-emscripten.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. if [ -z "$SDKDIR" ]; then
  3. SDKDIR="/emsdk_portable"
  4. fi
  5. ENVSCRIPT="$SDKDIR/emsdk_env.sh"
  6. if [ ! -f "$ENVSCRIPT" ]; then
  7. echo "ERROR: This script expects the Emscripten SDK to be in '$SDKDIR'." 1>&2
  8. echo "ERROR: Set the \$SDKDIR environment variable to override this." 1>&2
  9. exit 1
  10. fi
  11. TARBALL="$1"
  12. if [ -z $1 ]; then
  13. TARBALL=physfs-emscripten.tar.xz
  14. fi
  15. cd `dirname "$0"`
  16. cd ..
  17. PHYSFSBASE=`pwd`
  18. if [ -z "$MAKE" ]; then
  19. OSTYPE=`uname -s`
  20. if [ "$OSTYPE" == "Linux" ]; then
  21. NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l`
  22. let NCPU=$NCPU+1
  23. elif [ "$OSTYPE" = "Darwin" ]; then
  24. NCPU=`sysctl -n hw.ncpu`
  25. elif [ "$OSTYPE" = "SunOS" ]; then
  26. NCPU=`/usr/sbin/psrinfo |wc -l |sed -e 's/^ *//g;s/ *$//g'`
  27. else
  28. NCPU=1
  29. fi
  30. if [ -z "$NCPU" ]; then
  31. NCPU=1
  32. elif [ "$NCPU" = "0" ]; then
  33. NCPU=1
  34. fi
  35. MAKE="make -j$NCPU"
  36. fi
  37. echo "\$MAKE is '$MAKE'"
  38. echo "Setting up Emscripten SDK environment..."
  39. source "$ENVSCRIPT"
  40. echo "Setting up..."
  41. set -x
  42. cd "$PHYSFSBASE"
  43. rm -rf buildbot
  44. mkdir buildbot
  45. cd buildbot
  46. echo "Configuring..."
  47. emcmake cmake -G "Unix Makefiles" -DPHYSFS_BUILD_SHARED=False -DCMAKE_BUILD_TYPE=MinSizeRel .. || exit $?
  48. echo "Building..."
  49. emmake $MAKE || exit $?
  50. set -e
  51. rm -rf "$TARBALL" physfs-emscripten
  52. mkdir -p physfs-emscripten
  53. echo "Archiving to '$TARBALL' ..."
  54. cp ../src/physfs.h libphysfs.a physfs-emscripten
  55. chmod -R a+r physfs-emscripten
  56. chmod a+x physfs-emscripten
  57. chmod -R go-w physfs-emscripten
  58. tar -cJvvf "$TARBALL" physfs-emscripten
  59. echo "Done."
  60. exit 0
  61. # end of emscripten-buildbot.sh ...