From b7c26079577f55fcd9107d07c6eec8e3adfe94d7 Mon Sep 17 00:00:00 2001 From: Ulrich Müller Date: Sun, 12 Oct 2008 09:51:44 +0000 Subject: Sync from Portage tree. svn path=/emacs-overlay/; revision=1168 --- eclass/elisp.eclass | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 eclass/elisp.eclass (limited to 'eclass') 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 +# Copyright 2003 Jeremy Maitin-Shepard +# Copyright 2007-2008 Christian Faulhammer +# Copyright 2007-2008 Ulrich Müller +# +# @ECLASS: elisp.eclass +# @MAINTAINER: +# Feel free to contact the Emacs team through 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 -- cgit v1.2.3-65-gdbad