summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2008-10-12 09:51:44 +0000
committerUlrich Müller <ulm@gentoo.org>2008-10-12 09:51:44 +0000
commitb7c26079577f55fcd9107d07c6eec8e3adfe94d7 (patch)
tree0cf108e0202e1ceb6ce5ce8cc9128a2a99107d1d /eclass
parentAdd missing SITEFILE definition. (diff)
downloademacs-b7c26079577f55fcd9107d07c6eec8e3adfe94d7.tar.gz
emacs-b7c26079577f55fcd9107d07c6eec8e3adfe94d7.tar.bz2
emacs-b7c26079577f55fcd9107d07c6eec8e3adfe94d7.zip
Sync from Portage tree.
svn path=/emacs-overlay/; revision=1168
Diffstat (limited to 'eclass')
-rw-r--r--eclass/elisp.eclass84
1 files changed, 84 insertions, 0 deletions
diff --git a/eclass/elisp.eclass b/eclass/elisp.eclass
new file mode 100644
index 0000000..86cb925
--- /dev/null
+++ b/eclass/elisp.eclass
@@ -0,0 +1,84 @@
+# 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
+}
+
+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