summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Faulhammer <opfer@gentoo.org>2007-07-02 06:19:18 +0000
committerChristian Faulhammer <opfer@gentoo.org>2007-07-02 06:19:18 +0000
commitcda0c87189ee9926868046855f899e539155ec27 (patch)
tree51d70a7ec52c79bf3bb8ccea660f03ff8fb3dd4d /eclass/elisp.eclass
parentAdding Changelog which I missed. (diff)
downloadgentoo-2-cda0c87189ee9926868046855f899e539155ec27.tar.gz
gentoo-2-cda0c87189ee9926868046855f899e539155ec27.tar.bz2
gentoo-2-cda0c87189ee9926868046855f899e539155ec27.zip
elisp.eclass:
* Depend on Emacs by NEED_EMACS=<version> before inherit * DOCS variable is used in src_install() to give a number of documentation files * Documented some missing parts * Some code clean-up elisp-common: * elisp-emacs-version() to determine Emacs' current major version number * site-gentoo.el is only regenerated if there was actually a change, thus preventing unecessary output on postrm or postinst * now every action is commented with an einfo output * Documented some missing parts * Some code clean-up
Diffstat (limited to 'eclass/elisp.eclass')
-rw-r--r--eclass/elisp.eclass44
1 files changed, 32 insertions, 12 deletions
diff --git a/eclass/elisp.eclass b/eclass/elisp.eclass
index 5108685537c4..c8df6b129806 100644
--- a/eclass/elisp.eclass
+++ b/eclass/elisp.eclass
@@ -1,10 +1,11 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/elisp.eclass,v 1.18 2007/04/16 15:41:02 opfer Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/elisp.eclass,v 1.19 2007/07/02 06:19:18 opfer Exp $
#
# Copyright 2007 Christian Faulhammer <opfer@gentoo.org>
# Copyright 2002-2007 Matthew Kennedy <mkennedy@gentoo.org>
# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
+# Copyright 2007 Ulrich Mueller <ulm@gentoo.org>
#
# This eclass sets the site-lisp directory for emacs-related packages.
#
@@ -13,41 +14,59 @@
# itself. All elisp-* functions are documented there.
#
# Setting SIMPLE_ELISP=t in an ebuild means, that the package's source
-# is a single (in whatever way) compressed elisp file with the file name
-# ${PN}-${PV}. The consequences:
+# is a single (in whatever way) compressed elisp file with the file name
+# ${PN}-${PV}. The consequences:
#
# 1.) ${S} is redefined
# 2.) ${PN}-${PV}.el is moved to ${PN} in the system.
#
-
-inherit elisp-common
-
# SRC_URI should be set to wherever the primary app-emacs/ maintainer
# keeps the local elisp mirror, since most app-emacs packages are
# upstream as a single .el file.
+#
+# DOCS="blah.txt ChangeLog" is automatically used to install the given
+# files by dodoc in src_install().
+#
+# If you need anything different from Emacs 21, use the NEED_EMACS
+# variable before inheriting elisp.eclass. Set it to the major version
+# your package uses and the dependency will be adjusted.
+
+inherit elisp-common versionator
+
+VERSION=${NEED_EMACS:-21}
+DEPEND=">=virtual/emacs-${VERSION}"
+IUSE=""
if [ "${SIMPLE_ELISP}" = 't' ]; then
S="${WORKDIR}/"
fi
-DEPEND="virtual/emacs"
-IUSE=""
+elisp_pkg_setup() {
+ local emacs_version="$(elisp-emacs-version)"
+ if ! version_is_at_least "${VERSION}" "${emacs_version}"; then
+ eerror "This package needs at least Emacs ${VERSION}."
+ eerror "Use \"eselect emacs\" to select the active version."
+ die "Emacs version ${emacs_version} is too low."
+ fi
+}
elisp_src_unpack() {
unpack ${A}
- if [ "${SIMPLE_ELISP}" = 't' ]
- then
+ if [ "${SIMPLE_ELISP}" = 't' ]; then
cd "${S}" && mv ${P}.el ${PN}.el
fi
}
elisp_src_compile() {
- elisp-compile *.el || die
+ elisp-compile *.el || die "elisp-compile failed"
}
elisp_src_install() {
elisp-install ${PN} *.el *.elc
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ if [ -n "${DOCS}" ]; then
+ dodoc ${DOCS} || die "dodoc failed"
+ fi
}
elisp_pkg_postinst() {
@@ -58,4 +77,5 @@ elisp_pkg_postrm() {
elisp-site-regen
}
-EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst pkg_postrm
+EXPORT_FUNCTIONS src_unpack src_compile src_install
+EXPORT_FUNCTIONS pkg_setup pkg_postinst pkg_postrm