#!/bin/sh # # written by Markus Sinner, http://psitronic.de # # Nightly builds on. # http://freeorion.psitronic.de/download/nightly/ # # This is a wrapper-script for starting FreeOrion on # ix86 (and maybe x64) Linux Systems. # This script will CD into application and set some # enviroment variables. # ---- commandline PARAMETERS and ENVIROMENT variables ----- # This script supports parameters, that will be evaluated # BEFORE freeorion binary is called and will be removed, # because the binary won't support them. # Currently only one parameter at a time is supported! # Parameters other than these will be appended as command # line parameters to the call of the freeorion binary. # # --strace # This starts freeorion using the "strace" utility. # Generates a strace logifle /tmp/freeorion.trace. # Make sure it is installed on your system! # --gdb # Runs freeorion in a gdb instance, passes the original # parameters through the --args parameter of gdb # # # ENVIROMENT variables # This script supports some enviroment variables. To set them # either use the followin command BEFORE you execute this script. # export XXXX="value" # This permanently set the variable in you current shell script. # Or you prepend the options when running this script, like this: # PARAM1="hello" PARAM2="yo man" /usr/bin/freeorion.elf # # Supportet are: # FO_TRACE= # Use this to prepend something to calling freorion. # This variables also is used internally, when --gdb or --trace # appear on the command line. # FO_GDB_ARGS= # If you use --gbd, you should uses this env to add GDB parameters. # Make sure you end this list of parameters with --args, otherwise # gdb won't start. Example: FO_GDB_ARGS="-q -s fo.symbols --args" # LD_LIBRARY_PATH= # This is a well known env and will be honored by this script. # # ---------- STARTS HERE --------------- # Change into application directory # If this is a symlink, then we # need to change into the dir of symlink-target. if [ -h $0 ]; then echo "I am Symlink. Following into my targets basedir" ME=`readlink $0` else echo "Following into my basedir" ME=$0 fi # This is important! Script won't work outside its installation dir ROOT=/usr/share/freeorion cd ${ROOT} echo -n "CWD: " pwd # Check for python. If freeorionca binary is missing it, use # the shipped version. if ldd /usr/bin/freeorionca | grep "libpython.*not found"; then #echo "python2.5 missing. Using shipped version." PYTHON_USE_SHIPPED=1 else #echo "python2.5 found. Using it." PYTHON_USE_SHIPPED=0 fi # Set Python library home for loading modules # If no python 2.5 is detected, use shipped python 2.5 if [ "$PYTHON_USE_SHIPPED" = "1" ]; then export PYTHONHOME=/usr/lib/freeorion/python2.5 export PYTHONPATH=${PYTHONHOME} export PYTHONDEBUG=1 export PYTHONVERBOSE=1 echo "PYTHONHOME=${PYTHONHOME}" export LD_LIBRARY_PATH=${PYTHONHOME}:${LD_LIBRARY_PATH} export LD_PRELOAD=${PYTHONHOME}/libutil.so.1:${PYTHONHOME}/libpython2.5.so fi # Command line Parameter --gdb forces running in gdb # Setting FO_TRACE to gdb results in other settings, see # below if [ "$1" = "--gdb" ]; then FO_TRACE="gdb" # Don't forget to remove the param shift fi if [ "$1" = "--strace" ]; then TRACEFILE=/tmp/freeorion.trace echo echo "Tracing to ${TRACEFILE}" echo FO_TRACE="strace -f -o ${TRACEFILE}" # Don't forget to remove the param shift fi # Add a parameter FO_GDB_ARGS to support gdb # Or warn the user, if he changed FO_GDB_ARGS and has # forgotten to end it with --args if [ "$FO_TRACE" = "gdb" ]; then if [ "$FO_GDB_ARGS" = "" ]; then FO_GDB_ARGS="--args" else echo "****************************************************" echo "** NOTE NOTE NOTE NOTE **" echo "Running FO in gdb" echo "If you use FO_GDB_ARGS on your command line, make" echo "sure that you END this variabble with --args." echo "Otherwise gdb will not start." echo echo "Type 'start' when the gdb instance has loaded!" echo fi fi # Support loading libs from application/lib export LD_LIBRARY_PATH=./lib:${LD_LIBRARY_PATH} # Call with settings-dir to avoid conflicting installations ${FO_TRACE} ${FO_GDB_ARGS} /usr/bin/freeorion.elf --resource-dir ./default $@