1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/elisp-common.eclass,v 1.10 2005/05/03 09:20:13 usata Exp $
#
# Copyright 2002-2003 Matthew Kennedy <mkennedy@gentoo.org>
# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
#
# This is not an eclass, but it does provide emacs-related
# installation utilities.
ECLASS=elisp-common
INHERITED="$INHERITED $ECLASS"
SITELISP=/usr/share/emacs/site-lisp
elisp-compile() {
/usr/bin/emacs --batch -f batch-byte-compile --no-site-file --no-init-file $*
}
elisp-install() {
local subdir=$1
dodir ${SITELISP}/${subdir}
insinto ${SITELISP}/${subdir}
shift
doins $@
}
elisp-site-file-install() {
local sitefile=$1 my_pn=${2:-${PN}}
pushd ${S}
cp ${sitefile} ${T}
sed -i "s:@SITELISP@:${SITELISP}/${my_pn}:g" ${T}/$(basename ${sitefile})
insinto ${SITELISP}
doins ${T}/$(basename ${sitefile}) || die "failed to install site file"
popd
}
elisp-site-regen() {
einfo "Regenerating ${SITELISP}/site-gentoo.el ..."
einfo ""
cat <<EOF >${SITELISP}/site-gentoo.el
;;; DO NOT EDIT THIS FILE -- IT IS GENERATED AUTOMATICALLY BY PORTAGE
;;; -----------------------------------------------------------------
EOF
ls ${SITELISP}/[0-9][0-9]*-gentoo.el |sort -n | \
while read sf
do
einfo " Adding $(basename $sf) ..."
# Great for debugging, too noisy and slow for users though
# echo "(message \"Loading $sf ...\")" >>${SITELISP}/site-start.el
cat $sf >>${SITELISP}/site-gentoo.el
done
while read line; do einfo "${line}"; done <<EOF
All site initialization for Gentoo-installed packages is now added to
/usr/share/emacs/site-lisp/site-gentoo.el; site-start.el is no longer
managed by Gentoo. You are responsible for all maintenance of
site-start.el if there is such a file.
In order for this site initialization to be loaded for all users
automatically, as was done previously, you can add a line like this:
(load "/usr/share/emacs/site-lisp/site-gentoo")
to /usr/share/emacs/site-lisp/site-start.el. Alternatively, that line
can be added by individual users to their initialization files, or for
greater flexibility, users can select which of the package-specific
initialization files in /usr/share/emacs/site-lisp to load.
EOF
echo
}
# The following Emacs Lisp compilation routine is taken from GNU
# autotools.
elisp-comp() {
# Copyright 1995 Free Software Foundation, Inc.
# Fran�ois Pinard <pinard@iro.umontreal.ca>, 1995.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This script byte-compiles all `.el' files which are part of its
# arguments, using GNU Emacs, and put the resulting `.elc' files into
# the current directory, so disregarding the original directories used
# in `.el' arguments.
#
# This script manages in such a way that all Emacs LISP files to
# be compiled are made visible between themselves, in the event
# they require or load-library one another.
if test $# = 0; then
echo 1>&2 "No files given to $0"
exit 1
else
if test -z "$EMACS" || test "$EMACS" = "t"; then
# Value of "t" means we are running in a shell under Emacs.
# Just assume Emacs is called "emacs".
EMACS=emacs
fi
tempdir=elc.$$
mkdir $tempdir
cp $* $tempdir
cd $tempdir
echo "(add-to-list 'load-path \"../\")" > script
$EMACS -batch -q --no-site-file --no-init-file -l script -f batch-byte-compile *.el
mv *.elc ..
cd ..
rm -fr $tempdir
fi
}
# Local Variables: ***
# mode: shell-script ***
# tab-width: 4 ***
# indent-tabs-mode: t ***
# End: ***
|