wrapper.sh
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:6k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. #!/bin/bash
  2. ## Here are some configuration options for Linux Client Testers.
  3. ## These options are for self-assisted troubleshooting during this beta
  4. ## testing phase; you should not usually need to touch them.
  5. ## - Avoids using any OpenAL audio driver.
  6. #export LL_BAD_OPENAL_DRIVER=x
  7. ## - Avoids using any FMOD audio driver.
  8. #export LL_BAD_FMOD_DRIVER=x
  9. ## - Avoids using the FMOD ESD audio driver.
  10. #export LL_BAD_FMOD_ESD=x
  11. ## - Avoids using the FMOD OSS audio driver.
  12. #export LL_BAD_FMOD_OSS=x
  13. ## - Avoids using the FMOD ALSA audio driver.
  14. #export LL_BAD_FMOD_ALSA=x
  15. ## - Avoids the optional OpenGL extensions which have proven most problematic
  16. ##   on some hardware.  Disabling this option may cause BETTER PERFORMANCE but
  17. ##   may also cause CRASHES and hangs on some unstable combinations of drivers
  18. ##   and hardware.
  19. ## NOTE: This is now disabled by default.
  20. #export LL_GL_BASICEXT=x
  21. ## - Avoids *all* optional OpenGL extensions.  This is the safest and least-
  22. ##   exciting option.  Enable this if you experience stability issues, and
  23. ##   report whether it helps in the Linux Client Testers forum.
  24. #export LL_GL_NOEXT=x
  25. ## - For advanced troubleshooters, this lets you disable specific GL
  26. ##   extensions, each of which is represented by a letter a-o.  If you can
  27. ##   narrow down a stability problem on your system to just one or two
  28. ##   extensions then please post details of your hardware (and drivers) to
  29. ##   the Linux Client Testers forum along with the minimal
  30. ##   LL_GL_BLACKLIST which solves your problems.
  31. #export LL_GL_BLACKLIST=abcdefghijklmno
  32. ## - Some ATI/Radeon users report random X server crashes when the mouse
  33. ##   cursor changes shape.  If you suspect that you are a victim of this
  34. ##   driver bug, try enabling this option and report whether it helps:
  35. #export LL_ATI_MOUSE_CURSOR_BUG=x
  36. ## - If you experience crashes with streaming video and music, you can
  37. ##   disable these by enabling this option:
  38. #export LL_DISABLE_GSTREAMER=x
  39. ## - GStreamer is automatically disabled - for now - on 64-bit systems due
  40. ##   to common fatal incompatibilities; remove/comment these lines if you want
  41. ##   to try anyway.
  42. if [ "`uname -m`" = "x86_64" ]; then
  43.     export LL_DISABLE_GSTREAMER=x
  44.     echo '64-bit Linux detected: Disabling GStreamer (streaming video and music) by default; edit ./snowglobe to re-enable.'
  45. fi
  46. ## Everything below this line is just for advanced troubleshooters.
  47. ##-------------------------------------------------------------------
  48. ## - For advanced debugging cases, you can run the viewer under the
  49. ##   control of another program, such as strace, gdb, or valgrind.  If
  50. ##   you're building your own viewer, bear in mind that the executable
  51. ##   in the bin directory will be stripped: you should replace it with
  52. ##   an unstripped binary before you run.
  53. #export LL_WRAPPER='gdb --args'
  54. #export LL_WRAPPER='valgrind --smc-check=all --error-limit=no --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp'
  55. ## - Avoids an often-buggy X feature that doesn't really benefit us anyway.
  56. export SDL_VIDEO_X11_DGAMOUSE=0
  57. ## - Works around a problem with misconfigured 64-bit systems not finding GL
  58. export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}":/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri
  59. ## - The 'scim' GTK IM module widely crashes the viewer.  Avoid it.
  60. if [ "$GTK_IM_MODULE" = "scim" ]; then
  61.     export GTK_IM_MODULE=xim
  62. fi
  63. ## - Automatically work around the ATI mouse cursor crash bug:
  64. ## (this workaround is disabled as most fglrx users do not see the bug)
  65. #if lsmod | grep fglrx &>/dev/null ; then
  66. # export LL_ATI_MOUSE_CURSOR_BUG=x
  67. #fi
  68. ## Nothing worth editing below this line.
  69. ##-------------------------------------------------------------------
  70. SCRIPTSRC=`readlink -f "$0" || echo "$0"`
  71. RUN_PATH=`dirname "${SCRIPTSRC}" || echo .`
  72. echo "Running from ${RUN_PATH}"
  73. cd "${RUN_PATH}"
  74. # Re-register the secondlife:// protocol handler every launch, for now.
  75. ./etc/register_secondlifeprotocol.sh
  76. # Re-register the application with the desktop system every launch, for now.
  77. ./etc/refresh_desktop_app_entry.sh
  78. ## Before we mess with LD_LIBRARY_PATH, save the old one to restore for
  79. ##  subprocesses that care.
  80. export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
  81. if [ -n "$LL_TCMALLOC" ]; then
  82.     tcmalloc_libs='/usr/lib/libtcmalloc.so.0 /usr/lib/libstacktrace.so.0 /lib/libpthread.so.0'
  83.     all=1
  84.     for f in $tcmalloc_libs; do
  85.         if [ ! -f $f ]; then
  86.     all=0
  87. fi
  88.     done
  89.     if [ $all != 1 ]; then
  90.         echo 'Cannot use tcmalloc libraries: components missing' 1>&2
  91.     else
  92. export LD_PRELOAD=$(echo $tcmalloc_libs | tr ' ' :)
  93. if [ -z "$HEAPCHECK" -a -z "$HEAPPROFILE" ]; then
  94.     export HEAPCHECK=${HEAPCHECK:-normal}
  95. fi
  96.     fi
  97. fi
  98. export VIEWER_BINARY='snowglobe-do-not-run-directly'
  99. export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"${LD_LIBRARY_PATH}"'
  100. export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY'
  101. export SL_OPT="`cat etc/gridargs.dat` $@"
  102. # Run the program
  103. eval ${SL_ENV} ${SL_CMD} ${SL_OPT} || LL_RUN_ERR=runerr
  104. # Handle any resulting errors
  105. if [ -n "$LL_RUN_ERR" ]; then
  106. LL_RUN_ERR_MSG=""
  107. if [ "$LL_RUN_ERR" = "runerr" ]; then
  108. # generic error running the binary
  109. echo '*** Bad shutdown. ***'
  110. if [ "`uname -m`" = "x86_64" ]; then
  111. echo
  112. cat << EOFMARKER
  113. You are running the Second Life Viewer on a x86_64 platform.  The
  114. most common problems when launching the Viewer (particularly
  115. 'bin/$VIEWER_BINARY: not found' and 'error while
  116. loading shared libraries') may be solved by installing your Linux
  117. distribution's 32-bit compatibility packages.
  118. For example, on Ubuntu and other Debian-based Linuxes you might run:
  119. $ sudo apt-get install ia32-libs ia32-libs-gtk ia32-libs-kde ia32-libs-sdl
  120. EOFMARKER
  121. fi
  122. fi
  123. fi
  124. echo
  125. echo '*******************************************************'
  126. echo 'This is a BETA release of the Second Life linux client.'
  127. echo 'Thank you for testing!'
  128. echo 'Please see README-linux.txt before reporting problems.'
  129. echo