/[gentoo-x86]/eclass/elisp-common.eclass
Gentoo

Diff of /eclass/elisp-common.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.68 Revision 1.69
1# Copyright 1999-2010 Gentoo Foundation 1# Copyright 1999-2010 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/elisp-common.eclass,v 1.68 2010/10/09 15:30:43 ulm Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/elisp-common.eclass,v 1.69 2010/11/23 20:56:08 ulm Exp $
4# 4#
5# Copyright 2002-2004 Matthew Kennedy <mkennedy@gentoo.org> 5# Copyright 2002-2004 Matthew Kennedy <mkennedy@gentoo.org>
6# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com> 6# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
7# Copyright 2004-2005 Mamoru Komachi <usata@gentoo.org> 7# Copyright 2004-2005 Mamoru Komachi <usata@gentoo.org>
8# Copyright 2007-2008 Christian Faulhammer <fauli@gentoo.org> 8# Copyright 2007-2008 Christian Faulhammer <fauli@gentoo.org>
26# 26#
27# emacs? ( virtual/emacs ) 27# emacs? ( virtual/emacs )
28# 28#
29# to your DEPEND/RDEPEND line and use the functions provided here to 29# to your DEPEND/RDEPEND line and use the functions provided here to
30# bring the files to the correct locations. 30# bring the files to the correct locations.
31#
32# If your package requires a minimum Emacs version, e.g. Emacs 23, then
33# the dependency should be on >=virtual/emacs-23 instead. Because the
34# user can select the Emacs executable with eselect, you should also
35# make sure that the active Emacs version is sufficient. This can be
36# tested with function elisp-need-emacs(), which would typically be
37# called from pkg_setup(), as in the following example:
38#
39# elisp-need-emacs 23 || die "Emacs version too low"
40#
41# Please note that such tests should be limited to packages that are
42# known to fail with lower Emacs versions; the standard case is to
43# depend on virtual/emacs without version.
31# 44#
32# .SS 45# .SS
33# src_compile() usage: 46# src_compile() usage:
34# 47#
35# An elisp file is compiled by the elisp-compile() function defined 48# An elisp file is compiled by the elisp-compile() function defined
124# to above calls of elisp-site-regen(). 137# to above calls of elisp-site-regen().
125# Don't use "has_version virtual/emacs"! When unmerging the state of 138# Don't use "has_version virtual/emacs"! When unmerging the state of
126# the emacs USE flag is taken from the package database and not from the 139# the emacs USE flag is taken from the package database and not from the
127# environment, so it is no problem when you unset USE=emacs between 140# environment, so it is no problem when you unset USE=emacs between
128# merge and unmerge of a package. 141# merge and unmerge of a package.
129#
130# .SS
131# Miscellaneous functions:
132#
133# elisp-emacs-version() outputs the version of the currently active Emacs.
134 142
135# @ECLASS-VARIABLE: SITELISP 143# @ECLASS-VARIABLE: SITELISP
136# @DESCRIPTION: 144# @DESCRIPTION:
137# Directory where packages install Emacs Lisp files. 145# Directory where packages install Emacs Lisp files.
138SITELISP=/usr/share/emacs/site-lisp 146SITELISP=/usr/share/emacs/site-lisp
173 181
174elisp-compile() { 182elisp-compile() {
175 ebegin "Compiling GNU Emacs Elisp files" 183 ebegin "Compiling GNU Emacs Elisp files"
176 ${EMACS} ${EMACSFLAGS} ${BYTECOMPFLAGS} -f batch-byte-compile "$@" 184 ${EMACS} ${EMACSFLAGS} ${BYTECOMPFLAGS} -f batch-byte-compile "$@"
177 eend $? "elisp-compile: batch-byte-compile failed" 185 eend $? "elisp-compile: batch-byte-compile failed"
178}
179
180elisp-comp() {
181 die "Function elisp-comp is not supported any more, see bug 235442"
182} 186}
183 187
184# @FUNCTION: elisp-emacs-version 188# @FUNCTION: elisp-emacs-version
185# @DESCRIPTION: 189# @DESCRIPTION:
186# Output version of currently active Emacs. 190# Output version of currently active Emacs.
188elisp-emacs-version() { 192elisp-emacs-version() {
189 # The following will work for at least versions 18-23. 193 # The following will work for at least versions 18-23.
190 echo "(princ emacs-version)" >"${T}"/emacs-version.el 194 echo "(princ emacs-version)" >"${T}"/emacs-version.el
191 ${EMACS} ${EMACSFLAGS} -l "${T}"/emacs-version.el 195 ${EMACS} ${EMACSFLAGS} -l "${T}"/emacs-version.el
192 rm -f "${T}"/emacs-version.el 196 rm -f "${T}"/emacs-version.el
197}
198
199# @FUNCTION: elisp-need-emacs
200# @USAGE: <version>
201# @RETURN: 0 if true, 1 otherwise
202# @DESCRIPTION:
203# Test if the eselected Emacs version is at least the major version
204# specified as argument.
205
206elisp-need-emacs() {
207 local need_emacs=$1
208 local have_emacs=$(elisp-emacs-version)
209 einfo "Emacs version: ${have_emacs}"
210 if ! [[ ${have_emacs%%.*} -ge ${need_emacs%%.*} ]]; then
211 eerror "This package needs at least Emacs ${need_emacs%%.*}."
212 eerror "Use \"eselect emacs\" to select the active version."
213 return 1
214 fi
215 return 0
193} 216}
194 217
195# @FUNCTION: elisp-make-autoload-file 218# @FUNCTION: elisp-make-autoload-file
196# @USAGE: [output file] [list of directories] 219# @USAGE: [output file] [list of directories]
197# @DESCRIPTION: 220# @DESCRIPTION:

Legend:
Removed from v.1.68  
changed lines
  Added in v.1.69

  ViewVC Help
Powered by ViewVC 1.1.20