equal
deleted
inserted
replaced
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+"$@"} |