summaryrefslogtreecommitdiff
blob: e5ad3361f43c5dbae9d3610679f114e5b478c30a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

# @ECLASS: common-lisp.eclass
# @MAINTAINER:
# Common Lisp project <common-lisp@gentoo.org>
# @AUTHOR: Matthew Kennedy <mkennedy@gentoo.org>
# @BLURB: eclass for installing Common Lisp packages.
# @DESCRIPTION:
# This eclass supports the common-lisp-controller installation of many
# Common Lisp libraries

inherit common-lisp-common

CLPACKAGE=
DEPEND="dev-lisp/common-lisp-controller"

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
}

#
# 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 ${CLSOURCEROOT}/${CLPACKAGE}
	doins $@
}

common-lisp-system-symlink() {
	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: ***