summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/common-lisp.eclass')
-rw-r--r--eclass/common-lisp.eclass69
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: ***