summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2008-06-19 08:02:08 +0000
committerUlrich Müller <ulm@gentoo.org>2008-06-19 08:02:08 +0000
commit9645262970c927fb4330f12d4c544ab3fe93656e (patch)
tree695df42f6cb8b170c2ce1b77f48905bb04804e76 /eclass
parentVersion bump; needs Emacs 22, no longer depends on curl. Remove old. (diff)
downloademacs-9645262970c927fb4330f12d4c544ab3fe93656e.tar.gz
emacs-9645262970c927fb4330f12d4c544ab3fe93656e.tar.bz2
emacs-9645262970c927fb4330f12d4c544ab3fe93656e.zip
Support major/minor version in NEED_EMACS.
svn path=/emacs-overlay/; revision=1099
Diffstat (limited to 'eclass')
-rw-r--r--eclass/ChangeLog4
-rw-r--r--eclass/elisp.eclass84
2 files changed, 88 insertions, 0 deletions
diff --git a/eclass/ChangeLog b/eclass/ChangeLog
index f2a4853..29472ce 100644
--- a/eclass/ChangeLog
+++ b/eclass/ChangeLog
@@ -1,3 +1,7 @@
+2008-06-19 Ulrich Mueller <ulm@gentoo.org>
+
+ * elisp.eclass (NEED_EMACS): Support major/minor 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..50a8397
--- /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 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 ${PN}-${PV}.el, then this eclass will move
+# ${PN}-${PV}.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
+}
+
+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