#! /bin/csh -f # # Run Medley # # Syntax: medley [-nogreet][-xns][-noxns] [-geometry pixelgeometry] [-display xdisplay-device] # [-raw] [-t xtimeout][-prog executable-program] [-vmem savevmemfilename] | # [-m memorylimit] [-kbd keyboardtype] [-key key] # [sysoutfilename | -lfg | -lisp | -full | -xlfg # -{name of any sysout on the public sysout directory} ] # # -xns means leave unix xns running # -noxns means suppress Lisp xns. onintr cleanup limit coredumpsize 0 setenv HOSTNAME `hostname` setenv OSVERSION `uname -r` \ # Directory variables are accessible from Lisp via UNIX-GETENV setenv MEDLEYDIR $local/medley3.5 setenv lispcore $MEDLEYDIR/lispcore setenv LDEINIT "$MEDLEYDIR/current/local-init.lcom" setenv lfghome $local/lfg set mem="-m 256" # Default, has to be set #set geometry="-g 1060x790" # MBA screensize set geometry="-g 1440x900" setenv LDEKBDTYPE x set ICONSPEC=" " setenv LDEFILETIMEOUT 60 setenv TAKEXNSDOWN 0 setenv LDELISPXNS 0 #default is no lispxns if ($#argv != 0) then while ("$1" != "") switch ($1) case "-m": set mem="-m $2" shift breaksw case "-makefull": setenv LDEINIT $MEDLEYDIR/lispcore/makesysout/makefullsysout.lcom setenv LOADUPDIR $MEDLEYDIR/lispcore case "-xlisp": setenv LDESRCESYSOUT "$MEDLEYDIR/lispcore/loadups/xlisp.sysout" breaksw case "-oldlisp": case "-lisp": setenv LDESRCESYSOUT "$MEDLEYDIR/basics/lisp.sysout" breaksw case "-full": setenv LDESRCESYSOUT "$MEDLEYDIR/basics/full.sysout" breaksw case "-makelfg": setenv LDEINIT $lfghome/parser/makelfgsysout.lcom setenv LOADUPDIR $lfghome/parser case "-xfull": setenv LDESRCESYSOUT "$MEDLEYDIR/lispcore/loadups/xfull35.sysout" breaksw case "-lfg": case "-lfg35": setenv LDESRCESYSOUT "$lfghome/parser/release/lfg.sysout" set ICONSPEC = "-iconbitmap $lfghome/release/lfg.xbm -icontitle Xerox" breaksw case "-oldlfg": setenv LDESRCESYSOUT "$lfghome/parser/oldrelease/lfg35.sysout" set ICONSPEC = "-iconbitmap $lfghome/release/lfg.xbm -icontitle Xerox" breaksw case "-xlfg35": case "-xlfg": setenv LDESRCESYSOUT "$lfghome/parser/xlfg35.sysout" set ICONSPEC = "-iconbitmap $lfghome/release/lfg.xbm -icontitle Xerox" breaksw case "-makelisp": setenv LDEINIT $lispcore/makesysout/synclispfiles.lcom setenv LOADUPDIR $lispcore setenv LDESRCESYSOUT "$MEDLEYDIR/basics/lisp.sysout" breaksw case "-xlisp": setenv LDESRCESYSOUT "$MEDLEYDIR/lispcore/xlisp.sysout" breaksw case "-makeinit": setenv LDESRCESYSOUT "$MEDLEYDIR/basics/next/INIT.DLINIT" setenv LDEINIT "" breaksw case "-nogreet": setenv LDEINIT "" breaksw case "-greet": setenv LDEINIT "$2" shift breaksw case "-xns": setenv TAKEXNSDOWN 1 setenv LDELISPXNS 1 breaksw case "-noxns": setenv TAKEXNSDOWN 0 setenv LDELISPXNS 0 breaksw case "-raw": unsetenv DISPLAY breaksw case "-geometry": set geometry="-g $2" shift breaksw case "-display": setenv DISPLAY $2 shift breaksw case "-t": set xtimeout=$2 shift breaksw case "-prog": set progparam=$2 shift breaksw case "-vmem": setenv LDEDESTSYSOUT $2 shift breaksw case "-kbd": setenv LDEKBDTYPE $2 shift breaksw default: if (`expr index "$1" "[-]"` == 1) then # public sysout name set name=`expr substr $1 2 999` setenv LDESRCESYSOUT "$MEDLEYDIR/basics/${name}.sysout" else # not an option so must be a private sysout name setenv LDESRCESYSOUT $1 endif breaksw endsw shift end else # no options specified endif if ($?LDEDESTSYSOUT) then else if (-f /$HOSTNAME/$LOGNAME/lisp.virtualmem) then setenv LDEDESTSYSOUT /$HOSTNAME/$LOGNAME/lisp.virtualmem else if (-f ~/lisp.virtualmem) then setenv LDEDESTSYSOUT ~/lisp.virtualmem else if (-d /$HOSTNAME/$LOGNAME) then setenv LDEDESTSYSOUT /$HOSTNAME/$LOGNAME/lisp.virtualmem endif if (! $?LDESRCESYSOUT) then setenv LDESRCESYSOUT $LDEDESTSYSOUT endif if (! $?LDEKBDTYPE) then # switch (`/usr/bin/hostinfo keyboardtype`) # endsw endif echo "keyboard type is " $LDEKBDTYPE #set hostid = `hostid` setenv INMEDLEY 1 echo "sysout is " $LDESRCESYSOUT #set version = `medley-lisp-version $LDESRCESYSOUT` set version = "35010" if ($status) exit if ($LDELISPXNS) then set prog="ldeether" else set prog="lde" echo "running without xns protocols" endif switch ("$version") case "35000": set version = "3.5" breaksw case "35010": set version = "3.501" breaksw default: set version = "3.5" endsw echo "using emulator version $version" switch ("$version") case "3.5": case "3.501": set path = ($MEDLEYDIR/bin/ $path) # if ${?DISPLAY} then # we are running under X $prog $mem $geometry $ICONSPEC # else $prog $mem endif breaksw endsw # # Now we are done, so clean up after ourselves # cleanup: if ${?DISPLAY} then # do X cleanup else # reset endif #clear ; this obscures error messages