summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2008-09-13 08:13:07 +0000
committerUlrich Müller <ulm@gentoo.org>2008-09-13 08:13:07 +0000
commitefe4d60004916eb603aa48c685e97c83c4f66abc (patch)
treecf2485221201dda1812807c8927ea6c637144362 /eclass/elisp.eclass
parentInitial import. (diff)
downloademacs-efe4d60004916eb603aa48c685e97c83c4f66abc.tar.gz
emacs-efe4d60004916eb603aa48c685e97c83c4f66abc.tar.bz2
emacs-efe4d60004916eb603aa48c685e97c83c4f66abc.zip
Sync from Portage tree.
svn path=/emacs-overlay/; revision=1152
Diffstat (limited to 'eclass/elisp.eclass')
-rw-r--r--eclass/elisp.eclass85
1 files changed, 85 insertions, 0 deletions
diff --git a/eclass/elisp.eclass b/eclass/elisp.eclass
new file mode 100644
index 0000000..4aef1b1
--- /dev/null
+++ b/eclass/elisp.eclass
@@ -0,0 +1,85 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+#
+# Copyright 2002-2003 Matthew Kennedy <mkennedy@gentoo.org>
+# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
+# Copyright 2007-2008 Christian Faulhammer <opfer@gentoo.org>
+# Copyright 2007-2008 Ulrich Müller <ulm@gentoo.org>
+#
+# @ECLASS: elisp.eclass
+# @MAINTAINER:
+# Feel free to contact the Emacs team through <emacs@gentoo.org> if you
+# have problems, suggestions or questions.
+# @BLURB: Eclass for Emacs Lisp packages
+# @DESCRIPTION:
+#
+# This eclass sets the site-lisp directory for Emacs-related packages.
+#
+# Emacs support for other than pure elisp packages is handled by
+# elisp-common.eclass where you won't have a dependency on Emacs itself.
+# All elisp-* functions are documented there.
+#
+# If the package's source is a single (in whatever way) compressed elisp
+# file with the file name ${P}.el, then this eclass will move ${P}.el to
+# ${PN}.el in src_unpack().
+
+# @ECLASS-VARIABLE: DOCS
+# @DESCRIPTION:
+# DOCS="blah.txt ChangeLog" is automatically used to install the given
+# files by dodoc in src_install().
+
+# @ECLASS-VARIABLE: NEED_EMACS
+# @DESCRIPTION:
+# 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
+
+DEPEND=">=virtual/emacs-${NEED_EMACS:-21}"
+RDEPEND=">=virtual/emacs-${NEED_EMACS:-21}"
+IUSE=""
+
+elisp_pkg_setup() {
+ local need_emacs=${NEED_EMACS:-21}
+ local have_emacs=$(elisp-emacs-version)
+ if ! version_is_at_least "${need_emacs}" "${have_emacs}"; then
+ eerror "This package needs at least Emacs ${need_emacs}."
+ eerror "Use \"eselect emacs\" to select the active version."
+ die "Emacs version ${have_emacs} is too low."
+ fi
+ einfo "Currently selected GNU Emacs version: ${have_emacs}"
+}
+
+elisp_src_unpack() {
+ [ -n "${A}" ] && unpack ${A}
+ if [ -f ${P}.el ]; then
+ mv ${P}.el ${PN}.el || die "mv ${P}.el ${PN}.el failed"
+ fi
+}
+
+elisp_src_compile() {
+ elisp-compile *.el || die "elisp-compile failed"
+}
+
+elisp_src_install() {
+ elisp-install ${PN} *.el *.elc || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
+ || die "elisp-site-file-install failed"
+ if [ -n "${DOCS}" ]; then
+ dodoc ${DOCS} || die "dodoc failed"
+ fi
+}
+
+elisp_pkg_postinst() {
+ elisp-site-regen
+}
+
+elisp_pkg_postrm() {
+ elisp-site-regen
+}
+
+EXPORT_FUNCTIONS \
+ src_unpack src_compile src_install \
+ pkg_setup pkg_postinst pkg_postrm