summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass')
-rw-r--r--eclass/ChangeLog9
-rw-r--r--eclass/elisp.eclass85
2 files changed, 94 insertions, 0 deletions
diff --git a/eclass/ChangeLog b/eclass/ChangeLog
index 75c2599..41632b2 100644
--- a/eclass/ChangeLog
+++ b/eclass/ChangeLog
@@ -11,6 +11,15 @@
"no longer" -> "not", since the underlying change from
site-start.el to site-gentoo.el was in 2004.
+2008-06-23 Christian Faulhammer <opfer@gentoo.org>
+
+ * elisp.eclass: Update copyright information.
+ (elisp_pkg_setup): Be more verbose on output information.
+
+2008-06-23 Ulrich Mueller <ulm@gentoo.org>
+
+ * elisp.eclass (elisp_pkg_setup): Output Emacs version.
+
2008-05-25 Ulrich Mueller <ulm@gentoo.org>
* elisp.eclass (SIMPLE_ELISP): Remove variable.
diff --git a/eclass/elisp.eclass b/eclass/elisp.eclass
new file mode 100644
index 0000000..859be40
--- /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
+
+VERSION=${NEED_EMACS:-21}
+DEPEND=">=virtual/emacs-${VERSION}"
+RDEPEND=">=virtual/emacs-${VERSION}"
+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
+ einfo "Currently selected GNU Emacs version: ${emacs_version}"
+}
+
+elisp_src_unpack() {
+ 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