# invocation.sh -- a trampoline for Lisp invocation that works for both # SBCL and non-SBCL Lisps # # Part of clbuild by Luke Gorrie and contributors. clbuild_lisp() { ${lisp} $common_options \ $eval "$require_asdf" \ $eval "$set_central_registry" \ $eval "$EXTRA_CLIM_FEATURES" \ "$@" } lisp_trampoline() { # Start the Lisp with user arguments. For SBCL, we can do that using # --end-toplevel-options. For other Lisps, go through a temporary # file. options="$1" shift if test -n "$end_toplevel_options"; then ${lisp} \ $options \ $eval "$require_asdf" \ $eval "$set_central_registry" \ $eval "$EXTRA_CLIM_FEATURES" \ $eval "(load \"$BASE/clbuild.lisp\")" \ $end_toplevel_options \ "$@" else TMPDIR=`mktemp -d /tmp/clbuild.XXXXXXXXXX` export TMPDIR cleanup() { rm -rf $TMPDIR } trap cleanup exit while test -n "$1"; do # fixme: whitespacea echo $1 >>$TMPDIR/args shift done ${lisp} \ $options \ $eval "$require_asdf" \ $eval "$set_central_registry" \ $eval "$EXTRA_CLIM_FEATURES" \ $eval "(defparameter cl-user::*clbuild-args* \"$TMPDIR/args\")" \ $eval "(load \"$BASE/clbuild.lisp\")" fi } start_application() { lisp_trampoline "$noinform $run_options" "$@" }