/[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.23 Revision 1.24
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2007 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.23 2007/07/09 13:40:58 flameeyes Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/elisp-common.eclass,v 1.24 2007/07/10 20:14:52 ulm Exp $
4# 4#
5# Copyright 2007 Christian Faulhammer <opfer@gentoo.org> 5# Copyright 2007 Christian Faulhammer <opfer@gentoo.org>
6# Copyright 2002-2007 Matthew Kennedy <mkennedy@gentoo.org> 6# Copyright 2002-2004 Matthew Kennedy <mkennedy@gentoo.org>
7# Copyright 2004-2005 Mamoru Komachi <usata@gentoo.org>
7# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com> 8# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
8# Copyright 2007 Ulrich Mueller <ulm@gentoo.org> 9# Copyright 2007 Ulrich Mueller <ulm@gentoo.org>
9# 10#
10# This is not a real eclass, but it does provide Emacs-related installation 11# This is not a real eclass, but it does provide Emacs-related installation
11# utilities. 12# utilities.
30# An elisp file is compiled by the elisp-compile() function defined here and 31# An elisp file is compiled by the elisp-compile() function defined here and
31# simply takes the source files as arguments. In the case of interdependent 32# simply takes the source files as arguments. In the case of interdependent
32# elisp files, you can use the elisp-comp() function which makes sure all 33# elisp files, you can use the elisp-comp() function which makes sure all
33# files are loadable. 34# files are loadable.
34# 35#
35# elisp-compile *.el || die "elisp-compile failed!" 36# elisp-compile *.el || die "elisp-compile failed"
36# or 37# or
37# elisp-comp *.el || die "elisp-comp failed!" 38# elisp-comp *.el || die "elisp-comp failed"
38# 39#
39# Function elisp-make-autoload-file() can be used to generate a file with 40# Function elisp-make-autoload-file() can be used to generate a file with
40# autoload definitions for the lisp functions. It takes the output file name 41# autoload definitions for the lisp functions. It takes the output file name
41# (default: "${PN}-autoloads.el") and a list of directories (default: working 42# (default: "${PN}-autoloads.el") and a list of directories (default: working
42# directory) as its arguments. Use of this function requires that the elisp 43# directory) as its arguments. Use of this function requires that the elisp
51# of elisp-install(). The following parameters are the files to be put in 52# of elisp-install(). The following parameters are the files to be put in
52# that directory. Usually the subdirectory should be ${PN}, you can choose 53# that directory. Usually the subdirectory should be ${PN}, you can choose
53# something else, but remember to tell elisp-site-file-install() (see below) 54# something else, but remember to tell elisp-site-file-install() (see below)
54# the change, as it defaults to ${PN}. 55# the change, as it defaults to ${PN}.
55# 56#
56# elisp-install ${PN} *.elc *.el || die "elisp-install failed!" 57# elisp-install ${PN} *.el *.elc || die "elisp-install failed"
57# 58#
58# To let the Emacs support be activated by Emacs on startup, you need 59# To let the Emacs support be activated by Emacs on startup, you need
59# to provide a site file (shipped in ${FILESDIR}) which contains the startup 60# to provide a site file (shipped in ${FILESDIR}) which contains the startup
60# code (have a look in the documentation of your software). Normally this 61# code (have a look in the documentation of your software). Normally this
61# would look like this: 62# would look like this:
119# elisp-emacs-version() outputs the version of the currently active Emacs. 120# elisp-emacs-version() outputs the version of the currently active Emacs.
120# 121#
121# As always: Feel free to contact Emacs team through emacs@gentoo.org if you 122# As always: Feel free to contact Emacs team through emacs@gentoo.org if you
122# have problems, suggestions or questions. 123# have problems, suggestions or questions.
123 124
124IUSE="userland_GNU"
125
126SITELISP=/usr/share/emacs/site-lisp 125SITELISP=/usr/share/emacs/site-lisp
127 126
128elisp-compile() { 127elisp-compile() {
129 einfo "Compiling GNU Emacs Elisp files ..." 128 einfo "Compiling GNU Emacs Elisp files ..."
130 /usr/bin/emacs -batch -q --no-site-file -f batch-byte-compile $* 129 /usr/bin/emacs -batch -q --no-site-file -f batch-byte-compile $*
187 186
188elisp-site-regen() { 187elisp-site-regen() {
189 local sflist sf line 188 local sflist sf line
190 189
191 einfo "Regenerating ${SITELISP}/site-gentoo.el ..." 190 einfo "Regenerating ${SITELISP}/site-gentoo.el ..."
192 cat <<EOF >"${T}"/site-gentoo.el 191 cat <<-EOF >"${T}"/site-gentoo.el
193;;; DO NOT EDIT THIS FILE -- IT IS GENERATED AUTOMATICALLY BY PORTAGE 192 ;;; site-gentoo.el --- site initialisation for Gentoo-installed packages
194;;; -----------------------------------------------------------------
195 193
194 ;;; Commentary:
195 ;; Automatically generated by elisp-common.eclass
196 ;; DO NOT EDIT THIS FILE
197
198 ;;; Code:
196EOF 199 EOF
200
197 for sf in "${ROOT}${SITELISP}"/[0-9][0-9]*-gentoo.el 201 for sf in "${ROOT}${SITELISP}"/[0-9][0-9]*-gentoo.el
198 do 202 do
199 [ -r "${sf}" ] || continue 203 [ -r "${sf}" ] || continue
200 sflist="${sflist} $(basename "${sf}")" 204 sflist="${sflist} $(basename "${sf}")"
201 cat "${sf}" >>"${T}"/site-gentoo.el 205 cat "${sf}" >>"${T}"/site-gentoo.el
202 done 206 done
203 207
208 cat <<-EOF >>"${T}"/site-gentoo.el
209
210 ;;; site-gentoo.el ends here
211 EOF
212
204 if cmp -s "${ROOT}${SITELISP}"/site-gentoo.el "${T}"/site-gentoo.el; then 213 if cmp -s "${ROOT}${SITELISP}"/site-gentoo.el "${T}"/site-gentoo.el; then
205 # This prevents outputting unnecessary text when there 214 # This prevents outputting unnecessary text when there
206 # was actually no change 215 # was actually no change
207 # A case is a remerge where we have doubled output 216 # A case is a remerge where we have doubled output
208 einfo "... no changes" 217 einfo "... no changes"
209 else 218 else
210 local mvopts=""
211 use userland_GNU && mvopts="-b"
212 mv ${mvopts} "${T}"/site-gentoo.el "${ROOT}${SITELISP}"/site-gentoo.el 219 mv "${T}"/site-gentoo.el "${ROOT}${SITELISP}"/site-gentoo.el
213 einfo "" 220 einfo ""
214 for sf in ${sflist}; do 221 for sf in ${sflist}; do
215 einfo " Adding ${sf} ..." 222 einfo " Adding ${sf} ..."
216 done 223 done
217 while read line; do einfo "${line}"; done <<EOF 224 while read line; do einfo "${line}"; done <<EOF
218 225
219All site initialization for Gentoo-installed packages is now added to 226All site initialisation for Gentoo-installed packages is now added to
220/usr/share/emacs/site-lisp/site-gentoo.el; site-start.el is no longer 227/usr/share/emacs/site-lisp/site-gentoo.el; site-start.el is no longer
221managed by Gentoo. You are responsible for all maintenance of 228managed by Gentoo. You are responsible for all maintenance of
222site-start.el if there is such a file. 229site-start.el if there is such a file.
223 230
224In order for this site initialization to be loaded for all users 231In order for this site initialisation to be loaded for all users
225automatically, as was done previously, you can add a line like this: 232automatically, as was done previously, you can add a line like this:
226 233
227 (load "/usr/share/emacs/site-lisp/site-gentoo" nil t) 234 (load "/usr/share/emacs/site-lisp/site-gentoo" nil t)
228 235
229to /usr/share/emacs/site-lisp/site-start.el. Alternatively, that line 236to /usr/share/emacs/site-lisp/site-start.el. Alternatively, that line
230can be added by individual users to their initialization files, or for 237can be added by individual users to their initialisation files, or for
231greater flexibility, users can select which of the package-specific 238greater flexibility, users can select which of the package-specific
232initialization files in /usr/share/emacs/site-lisp to load. 239initialisation files in /usr/share/emacs/site-lisp to load.
233EOF 240EOF
234 echo 241 echo
235 fi 242 fi
236} 243}
237 244
238# The following Emacs Lisp compilation routine is taken from GNU 245# The following Emacs Lisp compilation routine was originally taken from
239# autotools. 246# GNU autotools.
240 247
241elisp-comp() { 248elisp-comp() {
242 # Copyright 1995 Free Software Foundation, Inc. 249 # Copyright 1995 Free Software Foundation, Inc.
243 # Fran├žois Pinard <pinard@iro.umontreal.ca>, 1995. 250 # Fran├žois Pinard <pinard@iro.umontreal.ca>, 1995.
244 # This script byte-compiles all `.el' files which are part of its 251 # This script byte-compiles all `.el' files which are part of its

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24

  ViewVC Help
Powered by ViewVC 1.1.20