smalltalk
branchjv
changeset 1435 9a1f18933e40
parent 1432 1e235b190ee3
child 1445 88a4f36a6912
equal deleted inserted replaced
1432:1e235b190ee3 1435:9a1f18933e40
     1 #!/bin/sh
     1 #!/bin/bash
     2 
     2 
     3 # $Header$
     3 # $Header$
     4 #
     4 #
     5 #
     5 #
     6 # startup script for smalltalk
     6 # startup script for smalltalk
    25 # -ldd    show ldd-output (to debug, which libs are loaded)
    25 # -ldd    show ldd-output (to debug, which libs are loaded)
    26 #
    26 #
    27 # all other args go to stx & the user classes
    27 # all other args go to stx & the user classes
    28 #
    28 #
    29 
    29 
    30 STX=stx
    30 STX_EXE=stx
    31 STX_BINDIR=.
    31 STX_BIN_DIR=$(dirname $0)
    32 DEBUGGER=
    32 DEBUGGER=
    33 
    33 
    34 
    34 if ! test -f "$STX_BIN_DIR/Make.proto"; then
    35 if test -x `dirname $0`/stx; then
    35 	# Running in Smalltalk/X jv-branch deployment mode
    36     STX_BINDIR=`dirname $0`
    36 	VERSION=6.2.5
    37     STX=$STX_BINDIR/stx
    37     STX_HOME="$STX_BIN_DIR/.."
    38 #    cd $STX_BINDIR
    38 	STX_TOPDIR="$STX_HOME/lib/smalltalkx/$VERSION"
       
    39 	STX_LIBDIR="$STX_TOPDIR/lib"
       
    40 	STX_PACKAGEDIR="$STX_TOPDIR%/packages"
       
    41 	STX_EXE="$STX_TOPDIR/bin/stx-bin"
    39 fi
    42 fi
    40 
    43 
    41 if [ "$STX_LIBDIR" != "" ]
    44 if [ "$STX_LIBDIR" != "" ]
    42 then
    45 then
    43     if [ ! -f $STX_LIBDIR/smalltalk.rc ]
    46     if [ ! -f $STX_LIBDIR/smalltalk.rc ]
    44     then
    47     then
    45        echo "smalltalk [warning]: ignore wrong STX_LIBDIR setting"
    48        echo "smalltalk [warning]: ignore wrong STX_LIBDIR setting ($STX_LIBDIR)"
    46        STX_LIBDIR=""
    49        STX_LIBDIR=""
    47     fi
    50     fi
    48 fi
    51 fi
    49 
    52 
    50 
    53 
    88     else
    91     else
    89         if [ -d $STX_LIBDIR/../packages ]
    92         if [ -d $STX_LIBDIR/../packages ]
    90         then
    93         then
    91             STX_PACKAGEDIR=`cd $STX_LIBDIR/../packages ; pwd`
    94             STX_PACKAGEDIR=`cd $STX_LIBDIR/../packages ; pwd`
    92         else
    95         else
    93             if [ -f $STX_BINDIR/smalltalk.rc ]
    96             if [ -f $STX_BIN_DIR/smalltalk.rc ]
    94             then
    97             then
    95                 STX_PACKAGEDIR=`cd $STX_BINDIR/../../.. ; pwd`
    98                 STX_PACKAGEDIR=`cd $STX_BIN_DIR/../../.. ; pwd`
    96             fi
    99             fi
    97         fi
   100         fi
    98     fi
   101     fi
    99 fi
   102 fi
   100 
   103 
   108     else
   111     else
   109        if [ -f $STX_LIBDIR/../lib/smalltalk.rc ]
   112        if [ -f $STX_LIBDIR/../lib/smalltalk.rc ]
   110        then
   113        then
   111            STX_TOPDIR=`cd $STX_LIBDIR/.. ; pwd`
   114            STX_TOPDIR=`cd $STX_LIBDIR/.. ; pwd`
   112        else
   115        else
   113            if [ -f $STX_BINDIR/smalltalk.rc ]
   116            if [ -f $STX_BIN_DIR/smalltalk.rc ]
   114            then
   117            then
   115               STX_TOPDIR=`cd $STX_BINDIR/../.. ; pwd`
   118               STX_TOPDIR=`cd $STX_BIN_DIR/../.. ; pwd`
   116            fi
   119            fi
   117        fi
   120        fi
   118     fi
   121     fi
   119 fi
   122 fi
   120 
   123 
   122 # echo STX_TOPDIR is $STX_TOPDIR
   125 # echo STX_TOPDIR is $STX_TOPDIR
   123 # echo STX_PACKAGEDIR is $STX_PACKAGEDIR
   126 # echo STX_PACKAGEDIR is $STX_PACKAGEDIR
   124 
   127 
   125 export STX_LIBDIR STX_PACKAGEDIR STX_TOPDIR
   128 export STX_LIBDIR STX_PACKAGEDIR STX_TOPDIR
   126 
   129 
   127 # echo STX is $STX
   130 # echo STX is $STX_EXE
   128 
   131 
   129 
   132 
   130 if [ "$1" = "--help" ]
   133 if [ "$1" = "--help" ]
   131 then    
   134 then    
   132     echo "
   135     echo "
   133 usage: smalltalk [-x prog] [-X dir] [--ldd] [--gdb] 
   136 usage: $(basename $0) [-x prog] [-X dir] [--ldd] [--gdb] 
   134 
   137 
   135 args to startup script:
   138 args to startup script:
   136    -x prog ................ use prog instead of stx as executable
   139    -x prog ................ use prog instead of stx as executable
   137    -X dir ................. use stx from dir instead of default (PATH)
   140    -X dir ................. use stx from dir instead of default (PATH)
   138    --ldd .................. show which shared libraries are used
   141    --ldd .................. show which shared libraries are used
   143    --callgrind-startup .... run under callgrind profiler tool with profiling on
   146    --callgrind-startup .... run under callgrind profiler tool with profiling on
   144                             - use this to profile VM startup
   147                             - use this to profile VM startup
   145    --stap SCRIPT .......... run given systemtap script, passing stx command as 
   148    --stap SCRIPT .......... run given systemtap script, passing stx command as 
   146                             stap -c 'stx ...' Systemtap may not be compiled in.
   149                             stap -c 'stx ...' Systemtap may not be compiled in.
   147 "
   150 "
   148     exec $STX --help
       
   149     exit 0
       
   150 fi
   151 fi
   151 
   152 
   152 if [ "$1" = "-x" ]
   153 if [ "$1" = "-x" ]
   153 then
   154 then
   154     shift
   155     shift
   155     STX=$1
   156     STX_EXE=$1
   156     shift
   157     shift
   157 fi
   158 fi
   158 
   159 
   159 if [ "$1" = "-X" ]
   160 if [ "$1" = "-X" ]
   160 then
   161 then
   161     shift
   162     shift
   162     STX=$1/stx
   163     STX_EXE=$1/stx
   163     shift
   164     shift
   164 fi
   165 fi
   165 
   166 
   166 if [ "$1" = "--gdb" ]
   167 if [ "$1" = "--gdb" ]
   167 then
   168 then
   256     then
   257     then
   257     LD_LIBRARY_PATH=$STX_LIBDIR:$STX_LIBDIR/lib:$LD_LIBRARY_PATH
   258     LD_LIBRARY_PATH=$STX_LIBDIR:$STX_LIBDIR/lib:$LD_LIBRARY_PATH
   258     SHLIB_PATH=$STX_LIBDIR:$STX_LIBDIR/lib:$SHLIB_PATH
   259     SHLIB_PATH=$STX_LIBDIR:$STX_LIBDIR/lib:$SHLIB_PATH
   259     fi
   260     fi
   260 else
   261 else
   261     STX_LIBDIR=$STX_BINDIR
   262     STX_LIBDIR=$STX_BIN_DIR
   262 fi
   263 fi
   263 
   264 
   264 #
   265 #
   265 # and in STX_BINDIR
   266 # and in STX_BIN_DIR
   266 #
   267 #
   267 
   268 
   268 if [ "$STX_BINDIR" != "" ]
   269 if [ "$STX_BIN_DIR" != "" ]
   269 then
   270 then
   270     if [ "$STX_BINDIR" != "/usr/local/bin" ]
   271     if [ "$STX_BIN_DIR" != "/usr/local/bin" ]
   271     then
   272     then
   272     LD_LIBRARY_PATH=$STX_BINDIR:$LD_LIBRARY_PATH
   273     LD_LIBRARY_PATH=$STX_BIN_DIR:$LD_LIBRARY_PATH
   273     SHLIB_PATH=$STX_BINDIR:$SHLIB_PATH
   274     SHLIB_PATH=$STX_BIN_DIR:$SHLIB_PATH
   274     fi
   275     fi
   275 fi
   276 fi
   276 
   277 
   277 LD_LIBRARY_PATH=.:./lib:$LD_LIBRARY_PATH
   278 LD_LIBRARY_PATH=.:./lib:$LD_LIBRARY_PATH
   278 SHLIB_PATH=.:./lib:$SHLIB_PATH
   279 SHLIB_PATH=.:./lib:$SHLIB_PATH
   292 
   293 
   293 #
   294 #
   294 # debugging which stx & shared libs are used ...
   295 # debugging which stx & shared libs are used ...
   295 #
   296 #
   296 whichOne=`/bin/sh -c "type $STX"`
   297 whichOne=`/bin/sh -c "type $STX"`
   297 if [ "$STX" = "stx" ]
   298 if [ "$STX_EXE" = "stx" ]
   298 then
   299 then
   299   if [ -f stx ]
   300   if [ -f stx ]
   300   then
   301   then
   301     whichOne=`/bin/sh -c "type stx"`
   302     whichOne=`/bin/sh -c "type stx"`
   302     if [ "$whichOne" != "stx is ./stx" ]
   303     if [ "$whichOne" != "stx is ./stx" ]
   338 # if [ "`uname`" = "HP-UX" ]
   339 # if [ "`uname`" = "HP-UX" ]
   339 # then
   340 # then
   340 #     echo "Please be patient - hp systems are very slow."
   341 #     echo "Please be patient - hp systems are very slow."
   341 # fi
   342 # fi
   342 
   343 
   343 PATH=$PATH:$STX_BINDIR
   344 PATH=$PATH:$STX_BIN_DIR
   344 export PATH
   345 export PATH
   345 # echo PATH is $PATH
   346 # echo PATH is $PATH
   346 # echo DISPLAY is $DISPLAY
   347 # echo DISPLAY is $DISPLAY
   347 
   348 
   348 
   349 
   349 
   350 
   350 if [ ! -z "$STAPSCRIPT" ]; then
   351 if [ ! -z "$STAPSCRIPT" ]; then
   351     echo "$STX_TOPDIR/stx/hacking/tapset"
   352     echo "$STX_TOPDIR/stx/hacking/tapset"
   352     CMD="$STX $@"
   353     CMD="$STX_EXE $@"
   353     echo "$CMD"
   354     echo "$CMD"
   354     exec stap --unprivileged $STAPSCRIPT -I "$STX_TOPDIR/hacking/tapset" -c "$CMD"
   355     exec stap --unprivileged $STAPSCRIPT -I "$STX_TOPDIR/hacking/tapset" -c "$CMD"
   355 fi
   356 fi
   356 
   357 
   357 
   358 
   358 
   359 
   359 exec $DEBUGGER $STX ${1+"$@"}
   360 exec $DEBUGGER $STX_EXE ${1+"$@"}