inherit eutils
-# CL packages in the overlay don't have their tarballs on the mirrors
-# so it's useless to mirror them
-RESTRICT="mirror"
+# @ECLASS-VARIABLE: CLIMPLEMENTATIONS
+# @DESCRIPTION:
+# Common Lisp implementations
+CLIMPLEMENTATIONS="sbcl clisp clozurecl cmucl ecls gcl abcl"
# @ECLASS-VARIABLE: CLSOURCEROOT
# @DESCRIPTION:
}
# @FUNCTION: lisp-file-p
+# @USAGE: <file>
# @DESCRIPTION:
# Returns true if ${1} is lisp source file.
lisp-file-p() {
}
# @FUNCTION: common-lisp-get-fpredicate
+# @USAGE: <type>
# @DESCRIPTION:
# Outputs the corresponding predicate to check files of type ${1}.
common-lisp-get-fpredicate() {
}
# @FUNCTION: common-lisp-install-sources
-# @USAGE: common-lisp-install-sources path [<other_paths>...]
+# @USAGE: <path> [...]
# @DESCRIPTION:
# Recursively install lisp sources of type ${2} if ${1} is -t or
# Lisp by default. When given a directory, it will be recursively
}
# @FUNCTION: common-lisp-install-one-asdf
+# @USAGE: <file>
# @DESCRIPTION:
# Installs ${1} asdf file in CLSOURCEROOT/CLPACKAGE and symlinks it in
# CLSYSTEMROOT.
}
# @FUNCTION: common-lisp-install-asdf
-# @USAGE: common-lisp-install-asdf path [<other_paths>...]
+# @USAGE: <path> [...]
# @DESCRIPTION:
# Installs all ASDF files and creates symlinks in CLSYSTEMROOT.
# When given a directory, it will be recursively scanned for ASDF
done
}
+# @FUNCTION: common-lisp-find-lisp-impl
+# @DESCRIPTION:
+# Outputs an installed Common Lisp implementation. Transverses
+# CLIMPLEMENTATIONS to find it.
+common-lisp-find-lisp-impl() {
+ for lisp in ${CLIMPLEMENTATIONS} ; do
+ [[ "$(best_version dev-lisp/${lisp})" ]] && echo "${lisp}" && return
+ done
+ die "No CommonLisp implementation found"
+}
+
# @FUNCTION: common-lisp-export-impl-args
-# @USAGE: common-lisp-export-impl-args <lisp-implementation>
+# @USAGE: <lisp-implementation>
# @DESCRIPTION:
-# Export a few variables containing the switches necessary
-# to make the CL implementation perform basic functions:
+# Export a few variables containing the switches necessary
+# to make the CL implementation perform basic functions:
# * CL_BINARY: Common Lisp implementation
# * CL_NORC: don't load syste-wide or user-specific initfiles
# * CL_LOAD: load a certain file
fi
CL_BINARY="${1}"
case "${CL_BINARY}" in
+ sbcl)
+ CL_NORC="--sysinit /dev/null --userinit /dev/null"
+ CL_LOAD="--load"
+ CL_EVAL="--eval"
+ ;;
clisp)
CL_NORC="-norc"
CL_LOAD="-i"
CL_LOAD="-load"
CL_EVAL="-eval"
;;
- sbcl)
- CL_NORC="--sysinit /dev/null --userinit /dev/null"
+ abcl)
+ CL_NORC="--noinit"
CL_LOAD="--load"
CL_EVAL="--eval"
;;