diff options
Diffstat (limited to 'eclass/common-lisp.eclass')
-rw-r--r-- | eclass/common-lisp.eclass | 69 |
1 files changed, 57 insertions, 12 deletions
diff --git a/eclass/common-lisp.eclass b/eclass/common-lisp.eclass index a5c04d2e23b8..95bc7ae2f453 100644 --- a/eclass/common-lisp.eclass +++ b/eclass/common-lisp.eclass @@ -1,33 +1,78 @@ -# Copyright 1999-2003 Gentoo Technologies, Inc. +# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/common-lisp.eclass,v 1.1 2003/06/07 18:44:34 mkennedy Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/common-lisp.eclass,v 1.1.1.1 2005/11/30 09:59:32 chriswhite Exp $ # # Author Matthew Kennedy <mkennedy@gentoo.org> # # This eclass supports the common-lisp-controller installation of many # Common Lisp libraries -ECLASS=common-lisp -INHERITED="$INHERITED $ECLASS" +inherit common-lisp-common CLPACKAGE= DEPEND="dev-lisp/common-lisp-controller" -pkg_postinst() { - /usr/sbin/register-common-lisp-source $CLPACKAGE +EXPORT_FUNCTIONS pkg_preinst pkg_postinst pkg_postrm + +common-lisp_pkg_postinst() { + if [ -z "${CLPACKAGE}" ]; then + die "CLPACKAGE was empty or undefined upon call to pkg_prerm" + else + for package in ${CLPACKAGE}; do + einfo "Registering Common Lisp source for ${package}" + register-common-lisp-source ${package} + done + fi +} + +common-lisp_pkg_postrm() { + if [ -z "${CLPACKAGE}" ]; then + die "CLPACKAGE was empty or undefined upon call to pkg_prerm" + else + for package in ${CLPACKAGE}; do + if [ ! -d ${CLSOURCEROOT}/${package} ]; then + einfo "Unregistering Common Lisp source for ${package}" +# rm -rf ${CLFASLROOT}/*/${package} + unregister-common-lisp-source ${package} + fi + done + fi } -pkg_prerm() { - /usr/sbin/unregister-common-lisp-source $CLPACKAGE +# +# In pkg_preinst, we remove the FASL files for the previous version of +# the source. +# +common-lisp_pkg_preinst() { + if [ -z "${CLPACKAGE}" ]; then + die "CLPACKAGE was empty or undefined upon call to pkg_preinst" + else + for package in ${CLPACKAGE}; do + einfo "Removing FASL files for previous version of Common Lisp package ${package}" + rm -rf ${CLFASLROOT}/*/${package} || true + done + fi } common-lisp-install() { - insinto /usr/share/common-lisp/source/$CLPACKAGE + insinto ${CLSOURCEROOT}/${CLPACKAGE} doins $@ } common-lisp-system-symlink() { - dodir /usr/share/common-lisp/systems - dosym /usr/share/common-lisp/source/$CLPACKAGE/$CLPACKAGE.asd \ - /usr/share/common-lisp/systems/$CLPACKAGE.asd + dodir ${CLSYSTEMROOT}/`dirname ${CLPACKAGE}` + if [ $# -eq 0 ]; then + dosym ${CLSOURCEROOT}/${CLPACKAGE}/${CLPACKAGE}.asd \ + ${CLSYSTEMROOT}/${CLPACKAGE}.asd + else + for package in "$@" ; do + dosym ${CLSOURCEROOT}/$CLPACKAGE/${package}.asd \ + ${CLSYSTEMROOT}/${package}.asd + done + fi } + +# Local Variables: *** +# mode: shell-script *** +# tab-width: 4 *** +# End: *** |