#!@SHELL@ # # The standard driver for SML/NJ under the new runtime system # CMD=`basename $0` # # for /bin/ksh, disable reading user's environment file # unset ENV ############################################################################# # # BEGIN SITE SPECIFIC STUFF # ############################################################################# # # SITE SPECIFIC CONFIGURATION INFO # # the path of the directory in which executables (like this file) are kept. BIN_DIR=@BINDIR@ if [ ! -d "$BIN_DIR" ]; then cmddir=`dirname $0` case "$cmddir" in /* ) BIN_DIR="$cmddir";; * ) BIN_DIR=`cd $cmddir; pwd` ;; esac fi # the path of the directory in which the runtime system executables are kept. RUN_DIR=$BIN_DIR/.run # the path of the directory in which the heap images are kept. HEAP_DIR=$BIN_DIR/.heap # # the following could be replaced with some site specific code # ARCH_N_OPSYS=`$BIN_DIR/.arch-n-opsys` if [ "$?" != "0" ]; then echo "$CMD: unable to determine architecture/operating system" exit 1 fi eval $ARCH_N_OPSYS ############################################################################# # # END SITE SPECIFIC STUFF # ############################################################################# # special shortcut for frequent use (and for Linux' binfmt) case "$1" in /* | ./* | ../* ) HEAP="@SMLload=$1"; shift ;; esac ALLOC="" # # Process command line arguments # ARGS="" while [ "$#" != "0" ]; do arg=$1; shift case $arg in @SMLrun=*) RUN=`echo $arg | sed 's/@SMLrun=//'` ;; @SMLload=*) HEAP=$arg; ;; @SMLappl) if [ "$#" = "0" ]; then echo "$CMD: missing argument for @SMLappl option" exit 1 fi APPL=$1; shift ;; @SMLversion) echo "$CMD @VERSION@" exit 0 ;; @SMLalloc=*) ALLOC=$arg ;; *) ARGS="$ARGS $arg" ;; esac done # # Try to figure out the CPU's cache size and set the allocation area # size accordingly. This is majorly important for Celeron systems # which suffer badly when the allocation area is too big. # if [ "$ALLOC" = "" ] ; then if [ -f /proc/cpuinfo ] ; then # "head" is called to make sure we consider only one matching line. # (On linux SMP systems there is more than one such line.) cache=`fgrep 'cache size' //