Patches for Kaffe 1.0.b1

Alexandre Oliva kaffe@rufus.w3.org
15 Jul 1998 02:43:31 -0300


--Multipart_Wed_Jul_15_02:43:31_1998-1
Content-Type: text/plain; charset=US-ASCII

Alexandre Oliva <oliva@dcc.unicamp.br> writes:

>>> I also agree that the script is the best place for setting CLASSPATH.

> I'll send a patch with such an implementation in a few minutes...

Here it is.  The scripts are now much smarter: every script looks for
a program named `java' or `kaffe', depending on the script name.  If
KAFFE_HOME is set, it looks for the program in $KAFFE_HOME/bin, and
uses that program if it finds it.  Otherwise, the script finds out in
which directory it lives (following soft links) and looks for the
program in the same directory.  If the program is not found in this
directory either, then the program will be looked for in the PATH.

`kaffe', the only script that actually calls `Kaffe', now defines both
LD_LIBRARY_PATH and CLASSPATH.  If CLASSPATH was already defined, the
standard CLASSPATH is appended to it; otherwise, it is set so as to
contain the current directory, then the standard CLASSPATH.  If
`classes.zip' exists in the directory that contains Klasses.jar, it
will also be included in the CLASSPATH, as the very last element.

The `kaffe' script checks whether KAFFE_DEBUG is set.  If running
"$KAFFE_DEBUG" starts `gdb', then so will `kaffe'; if "$KAFFE_DEBUG"
starts GNU Emacs or XEmacs, `kaffe' will start the `gdb' interface
inside Emacs.  In both cases, the current working directory from which 
`kaffe' was invoked will be selected, and the argument list passed to
the script will be set as the argument list for `Kaffe'.

Enjoy!

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil

--Multipart_Wed_Jul_15_02:43:31_1998-1
Content-Type: application/octet-stream; type=patch
Content-Disposition: attachment; filename="kaffe.in.diff"
Content-Transfer-Encoding: 7bit

Index: kaffe/scripts/kaffe.in
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/kaffe.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 kaffe.in
--- kaffe/scripts/kaffe.in	1998/07/15 01:56:54	1.1.1.1
+++ kaffe/scripts/kaffe.in	1998/07/15 05:40:35
@@ -2,9 +2,31 @@
 
 prefix=@prefix@
 exec_prefix=@exec_prefix@
-KAFFE_LIB=@libdir@
-# Pretend Kaffe is Java
-LD_LIBRARY_PATH=$KAFFE_LIB:$LD_LIBRARY_PATH
+: ${KAFFE_BINDIR=@bindir@}
+: ${KAFFE_CLASSDIR=@datadir@/kaffe}
+: ${KAFFE_LIB=@libdir@}
+CLASSPATH=${CLASSPATH-.}:$KAFFE_CLASSDIR/Klasses.jar:$KAFFE_CLASSDIR/pizza.jar`test -f $KAFFE_CLASSDIR/classes.zip && echo :$KAFFE_CLASSDIR/classes.zip`
+export CLASSPATH
+LD_LIBRARY_PATH=$KAFFE_LIB${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
 export LD_LIBRARY_PATH
 
-exec Kaffe $@
+if test x"${KAFFE_DEBUG+set}"x != x"set"x; then
+    exec $KAFFE_BINDIR/Kaffe $@
+else
+    case "`"$KAFFE_DEBUG" --version 0</dev/null 2>/dev/null`" in
+    "GNU gdb"*)
+	{
+	    echo "shell rm -f /tmp/.gdbinit.$$"
+	    echo "cd `pwd`"
+	    echo "set args $*"
+	} >/tmp/.gdbinit.$$
+	exec "$KAFFE_DEBUG" -command /tmp/.gdbinit.$$ $KAFFE_BINDIR/Kaffe
+	rm -f /tmp/.gdbinit.$$;;
+    "GNU Emacs"*)
+	exec "$KAFFE_DEBUG" -eval "(progn (gdb \"gdb $KAFFE_BINDIR/Kaffe\") (gud-call \"cd `pwd`\") (gud-call \"set args $*\"))";;
+    XEmacs*)
+	exec "$KAFFE_DEBUG" -eval "(progn (gdb \"$KAFFE_BINDIR/Kaffe\") (gdb-call \"cd `pwd`\") (gdb-call \"set args $*\"))";;
+    *) echo you must set KAFFE_DEBUG to either emacs or gdb >&2;;
+    esac
+fi
+exit 1

--Multipart_Wed_Jul_15_02:43:31_1998-1
Content-Type: application/octet-stream; type=patch
Content-Disposition: attachment; filename="scripts.diff"
Content-Transfer-Encoding: 7bit

Index: kaffe/scripts/appletviewer
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/appletviewer,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 appletviewer
--- kaffe/scripts/appletviewer	1998/07/15 01:56:34	1.1.1.3
+++ kaffe/scripts/appletviewer	1998/07/15 05:11:21
@@ -1,3 +1,19 @@
 #! /bin/sh
 # Script to run Appletviewer
-exec java sun.applet.AppletViewer $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.applet.AppletViewer ${1+"$@"}
Index: kaffe/scripts/jar
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/jar,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 jar
--- kaffe/scripts/jar	1998/07/15 01:56:36	1.1.1.2
+++ kaffe/scripts/jar	1998/07/15 05:12:23
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.tools.jar.Main $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.tools.jar.Main ${1+"$@"}
Index: kaffe/scripts/javac
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/javac,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 javac
--- kaffe/scripts/javac	1998/07/15 01:56:38	1.1.1.3
+++ kaffe/scripts/javac	1998/07/15 05:12:21
@@ -1,3 +1,19 @@
 #! /bin/sh
 # Script to run Sun's compiler
-exec java sun.tools.javac.Main $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.tools.javac.Main ${1+"$@"}
Index: kaffe/scripts/javadoc
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/javadoc,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 javadoc
--- kaffe/scripts/javadoc	1998/07/15 01:56:39	1.1.1.3
+++ kaffe/scripts/javadoc	1998/07/15 05:12:20
@@ -1,3 +1,19 @@
 #! /bin/sh
 # Script to run Sun's documenter
-exec java sun.tools.javadoc.Main $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.tools.javadoc.Main ${1+"$@"}
Index: kaffe/scripts/javakey
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/javakey,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 javakey
--- kaffe/scripts/javakey	1998/07/15 01:56:41	1.1.1.2
+++ kaffe/scripts/javakey	1998/07/15 05:12:12
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.security.provider.Main $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.security.provider.Main ${1+"$@"}
Index: kaffe/scripts/javap
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/javap,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 javap
--- kaffe/scripts/javap	1998/07/15 01:56:43	1.1.1.2
+++ kaffe/scripts/javap	1998/07/15 05:12:10
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.tools.javap.JavaP $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.tools.javap.JavaP ${1+"$@"}
Index: kaffe/scripts/jdb
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/jdb,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 jdb
--- kaffe/scripts/jdb	1998/07/15 01:56:45	1.1.1.2
+++ kaffe/scripts/jdb	1998/07/15 05:12:08
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.tools.ttydebug.TTY $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.tools.ttydebug.TTY ${1+"$@"}
Index: kaffe/scripts/native2ascii
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/native2ascii,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 native2ascii
--- kaffe/scripts/native2ascii	1998/07/15 01:56:47	1.1.1.2
+++ kaffe/scripts/native2ascii	1998/07/15 05:12:05
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.tools.native2ascii.Main $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.tools.native2ascii.Main ${1+"$@"}
Index: kaffe/scripts/pizza
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/pizza,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 pizza
--- kaffe/scripts/pizza	1998/07/15 01:56:35	1.1.1.1
+++ kaffe/scripts/pizza	1998/07/15 05:12:04
@@ -1,3 +1,19 @@
 #! /bin/sh
 # Script to run Pizza Java compiler
-exec kaffe pizza.compiler.Main $@
+runme=kaffe
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" pizza.compiler.Main ${1+"$@"}
Index: kaffe/scripts/pizzadoc
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/pizzadoc,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 pizzadoc
--- kaffe/scripts/pizzadoc	1998/07/15 01:56:39	1.1.1.1
+++ kaffe/scripts/pizzadoc	1998/07/15 05:12:02
@@ -1,3 +1,19 @@
 #! /bin/sh
 # Script to run PizzaDoc
-exec kaffe pizza.compiler.Main -pizzadoc $@
+runme=kaffe
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" pizza.compiler.Main -pizzadoc ${1+"$@"}
Index: kaffe/scripts/rmic
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/rmic,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 rmic
--- kaffe/scripts/rmic	1998/07/15 01:56:49	1.1.1.2
+++ kaffe/scripts/rmic	1998/07/15 05:11:56
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.rmi.rmic.Main $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.rmi.rmic.Main ${1+"$@"}
Index: kaffe/scripts/rmiregistry
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/rmiregistry,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 rmiregistry
--- kaffe/scripts/rmiregistry	1998/07/15 01:56:51	1.1.1.2
+++ kaffe/scripts/rmiregistry	1998/07/15 05:11:42
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.rmi.registry.RegistryImpl $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.rmi.registry.RegistryImpl ${1+"$@"}
Index: kaffe/scripts/serialver
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/serialver,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 serialver
--- kaffe/scripts/serialver	1998/07/15 01:56:52	1.1.1.2
+++ kaffe/scripts/serialver	1998/07/15 05:10:50
@@ -1,2 +1,18 @@
 #! /bin/sh
-exec java sun.tools.serialver.SerialVer $@
+runme=java
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x $KAFFE_HOME/bin/$runme; then
+    runme=$KAFFE_HOME/bin/$runme
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" sun.tools.serialver.SerialVer ${1+"$@"}
Index: kaffe/scripts/compat/appletviewer
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/compat/appletviewer,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 appletviewer
--- kaffe/scripts/compat/appletviewer	1998/07/15 01:56:56	1.1.1.1
+++ kaffe/scripts/compat/appletviewer	1998/07/15 05:13:13
@@ -1,3 +1,19 @@
 #! /bin/sh
 # Script to run Appletviewer
-exec kaffe kaffe.awt.AppletViewer $@
+runme=kaffe
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" kaffe.awt.AppletViewer ${1+"$@"}
Index: kaffe/scripts/compat/java
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/compat/java,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 java
--- kaffe/scripts/compat/java	1998/07/15 01:56:55	1.1.1.1
+++ kaffe/scripts/compat/java	1998/07/15 05:13:28
@@ -1,3 +1,19 @@
 #! /bin/sh
 # Pretend Kaffe is Java
-exec kaffe $@
+runme=kaffe
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" ${1+"$@"}
Index: kaffe/scripts/compat/javac
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/compat/javac,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 javac
--- kaffe/scripts/compat/javac	1998/07/15 01:56:56	1.1.1.1
+++ kaffe/scripts/compat/javac	1998/07/15 05:13:23
@@ -1,3 +1,19 @@
 #! /bin/sh
 # We use Pizza compiler rather than Sun's.
-exec kaffe pizza.compiler.Main $@
+runme=kaffe
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" pizza.compiler.Main ${1+"$@"}
Index: kaffe/scripts/compat/javadoc
===================================================================
RCS file: /home/msc/oliva/src/.cvs/kaffe/kaffe/scripts/compat/javadoc,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 javadoc
--- kaffe/scripts/compat/javadoc	1998/07/15 01:56:56	1.1.1.1
+++ kaffe/scripts/compat/javadoc	1998/07/15 05:13:18
@@ -1,3 +1,19 @@
 #! /bin/sh
 # We use Pizza rather than Sun's
-exec kaffe pizza.compiler.Main -pizzadoc $@
+runme=kaffe
+if test x"${KAFFE_HOME+set}"x = x"set"x &&
+   test -x "$KAFFE_HOME/bin/$runme"; then
+    runme="$KAFFE_HOME/bin/$runme"
+else
+    file="$0"
+    while test -h "$file"; do
+	newfile=`ls -l $file | sed s/'.* -> '//`
+	case "$newfile" in
+	/*) file="$newfile";;
+	*) file="`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'`/$newfile";;
+	esac
+    done
+    basedir=`cd \`echo "$file" | sed 's%/[^/]*$%%;s/^$/./'\` >/dev/null 2>&1; pwd`
+    if test -x "$basedir/$runme"; then runme="$basedir/$runme"; fi
+fi
+exec "$runme" pizza.compiler.Main -pizzadoc ${1+"$@"}

--Multipart_Wed_Jul_15_02:43:31_1998-1--