#!@POSIX_SHELL@ # -*- Shell-script -*- unixize () { echo "$1" | sed -e 's%\\\\%/%g' | sed -e 's%^\([A-Za-z]\):%/\1%' } setup_vars() { if [ -z "$MAXIMA_VERSION" ]; then MAXIMA_VERSION=@VERSION@ fi prefix=`unixize "@prefix@"` exec_prefix=`unixize "@exec_prefix@"` PACKAGE=@PACKAGE@ top_srcdir=`unixize "@expanded_top_srcdir@"` libdir=`unixize "@libdir@"` if [ -n "$MAXIMA_LAYOUT_AUTOTOOLS" ]; then layout_autotools="$MAXIMA_LAYOUT_AUTOTOOLS" else layout_autotools=@default_layout_autotools@ fi if [ "$layout_autotools" = "true" ]; then MAXIMA_DEFAULT_IMAGESDIR=$libdir/$PACKAGE/$MAXIMA_VERSION else MAXIMA_DEFAULT_IMAGESDIR=$top_srcdir/src fi if [ -n "$MAXIMA_PREFIX" ]; then if [ "$layout_autotools" = "true" ]; then MAXIMA_IMAGESDIR=`unixize "$MAXIMA_PREFIX"`/lib/$PACKAGE/$MAXIMA_VERSION else MAXIMA_IMAGESDIR=`unixize "$MAXIMA_PREFIX"`/src fi else MAXIMA_IMAGESDIR="$MAXIMA_DEFAULT_IMAGESDIR" fi MAXIMA_DEFAULT_LISP=@DEFAULTLISP@ # If the the binary directory for the default lisp is not present, # choose the first one we find. if [ ! -d "$MAXIMA_IMAGESDIR/binary-$MAXIMA_DEFAULT_LISP" ]; then MAXIMA_DEFAULT_LISP=`ls -1 $MAXIMA_IMAGESDIR 2>/dev/null | head -n 1 | sed 's/binary-//'` fi if [ -z "$MAXIMA_LISP" ]; then MAXIMA_LISP=$MAXIMA_DEFAULT_LISP fi } unsetup_vars () { unset MAXIMA_IMAGESDIR unset MAXIMA_LISP } if [ -z "$MAXIMA_USERDIR" ]; then maximarc_path="$HOME/.maxima/maximarc" else maximarc_path="`unixize \"$MAXIMA_USERDIR\"`/maximarc" fi if [ -f "$maximarc_path" ]; then . "$maximarc_path" fi # For some reason TeXmacs sets MAXIMA_DIRECTORY to the empty string, # which breaks maxima's internal path logic. This is a workaround. if [ -z "$MAXIMA_DIRECTORY" ]; then unset MAXIMA_DIRECTORY fi arg1=$1 arg2=$2 arg3=$3 arg4=$4 arg5=$5 arg6=$6 arg7=$7 arg8=$8 arg9=$9 while [ -n "$1" ]; do case $1 in -l ) MAXIMA_LISP=$2 ; shift;; --lisp ) MAXIMA_LISP=$2 ; shift;; --lisp=*) MAXIMA_LISP=`echo "$1" | sed 's/--lisp=//'` ;; -u ) MAXIMA_VERSION=$2 ; shift;; --use-version ) MAXIMA_VERSION=$2 ; shift;; --use-version=*) MAXIMA_VERSION=`echo "$1" | sed 's/--use-version=//'` ;; -v ) verbose=true;; --verbose ) verbose=true;; *) ;; esac shift done setup_vars if [ ! -d "$MAXIMA_IMAGESDIR" ]; then # Have we been moved? MAXIMA_PREFIX=`(cd \`dirname $0\` 1>/dev/null 2>/dev/null; dirname \`pwd\`)` export MAXIMA_PREFIX unsetup_vars setup_vars if [ ! -d "$MAXIMA_IMAGESDIR" ]; then echo "$0: unable to determine MAXIMA_PREFIX" 1>&2 exit 1 fi fi maxima_image_base="$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/maxima" if [ "$verbose" = "true" ]; then set -x fi if [ "$MAXIMA_LISP" = "clisp" ]; then if [ "$layout_autotools" = "true" ]; then exec "$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/@CLISP_RUNTIME@" -q -M "$maxima_image_base.mem" "" -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" else exec "@CLISP_NAME@" -q -M "$maxima_image_base.mem" "" -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" fi elif [ "$MAXIMA_LISP" = "cmucl" ]; then if [ "$layout_autotools" = "true" ]; then exec "$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/@CMUCL_RUNTIME@" -quiet -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" else exec "@CMUCL_NAME@" -quiet -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" fi elif [ "$MAXIMA_LISP" = "scl" ]; then if [ "$layout_autotools" = "true" ]; then exec "$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/@SCL_RUNTIME@" -quiet -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" else exec "@SCL_NAME@" -quiet -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" fi elif [ "$MAXIMA_LISP" = "gcl" ]; then exec "$maxima_image_base" -eval '(cl-user::run)' -f -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" elif [ "$MAXIMA_LISP" = "acl" ]; then # FIXME: arguments need in a manner consistent with the way they are extracted # in the function get-application-args in command-line.lisp exec "@ACL_NAME@" -I "$maxima_image_base.dxl" -e '(cl-user::run)' "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" elif [ "$MAXIMA_LISP" = "openmcl" ]; then # FIXME: arguments need in a manner consistent with the way they are extracted # in the function get-application-args in command-line.lisp exec "@OPENMCL_NAME@" -I "$maxima_image_base.image" "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" elif [ "$MAXIMA_LISP" = "sbcl" ]; then exec "@SBCL_NAME@" --core "$maxima_image_base.core" --noinform --end-runtime-options --eval '(cl-user::run)' --end-toplevel-options "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9" else echo "$0: lisp=\"$MAXIMA_LISP\" not known. Use --list-avail to see possible options." >&2 exit 1 fi