| 1 | # Copyright 1999-2008 Gentoo Foundation |
1 | # Copyright 1999-2008 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.42 2008/08/10 16:54:22 ulm Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/elisp-common.eclass,v 1.43 2008/08/27 06:53:41 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 <opfer@gentoo.org> |
8 | # Copyright 2007-2008 Christian Faulhammer <opfer@gentoo.org> |
| … | |
… | |
| 31 | # |
31 | # |
| 32 | # .SS |
32 | # .SS |
| 33 | # src_compile() usage: |
33 | # src_compile() usage: |
| 34 | # |
34 | # |
| 35 | # An elisp file is compiled by the elisp-compile() function defined here and |
35 | # An elisp file is compiled by the elisp-compile() function defined here and |
| 36 | # simply takes the source files as arguments. |
36 | # simply takes the source files as arguments. The case of interdependent |
|
|
37 | # elisp files is also supported, since the current directory is added to the |
|
|
38 | # load-path which makes sure that all files are loadable. |
| 37 | # |
39 | # |
| 38 | # elisp-compile *.el || die "elisp-compile failed" |
40 | # elisp-compile *.el || die "elisp-compile failed" |
| 39 | # |
41 | # |
| 40 | # In the case of interdependent elisp files, you can use the elisp-comp() |
42 | # Formerly, function elisp-comp() was used for compilation of interdependent |
| 41 | # function which makes sure all files are loadable. |
43 | # elisp files. This usage is considered as obsolete. |
| 42 | # |
|
|
| 43 | # elisp-comp *.el || die "elisp-comp failed" |
|
|
| 44 | # |
44 | # |
| 45 | # Function elisp-make-autoload-file() can be used to generate a file with |
45 | # Function elisp-make-autoload-file() can be used to generate a file with |
| 46 | # autoload definitions for the lisp functions. It takes the output file name |
46 | # autoload definitions for the lisp functions. It takes the output file name |
| 47 | # (default: "${PN}-autoloads.el") and a list of directories (default: working |
47 | # (default: "${PN}-autoloads.el") and a list of directories (default: working |
| 48 | # directory) as its arguments. Use of this function requires that the elisp |
48 | # directory) as its arguments. Use of this function requires that the elisp |
| 49 | # source files contain magic ";;;###autoload" comments. See the Emacs Lisp |
49 | # source files contain magic ";;;###autoload" comments. See the Emacs Lisp |
| 50 | # Reference Manual (node "Autoload") for a detailed explanation. |
50 | # Reference Manual (node "Autoload") for a detailed explanation. |
| 51 | # |
51 | # |
| 52 | # .SS |
52 | # .SS |
| 53 | # src_install() usage: |
53 | # src_install() usage: |
| 54 | # |
54 | # |
| … | |
… | |
| 138 | # @ECLASS-VARIABLE: SITEFILE |
138 | # @ECLASS-VARIABLE: SITEFILE |
| 139 | # @DESCRIPTION: |
139 | # @DESCRIPTION: |
| 140 | # Name of package's site-init file. |
140 | # Name of package's site-init file. |
| 141 | SITEFILE=50${PN}-gentoo.el |
141 | SITEFILE=50${PN}-gentoo.el |
| 142 | |
142 | |
|
|
143 | # @ECLASS-VARIABLE: EMACS |
|
|
144 | # @DESCRIPTION: |
|
|
145 | # Path of Emacs executable. |
| 143 | EMACS=/usr/bin/emacs |
146 | EMACS=/usr/bin/emacs |
|
|
147 | |
|
|
148 | # @ECLASS-VARIABLE: EMACSFLAGS |
|
|
149 | # @DESCRIPTION: |
|
|
150 | # Flags for executing Emacs in batch mode. |
| 144 | # The following works for Emacs versions 18-23, don't change it. |
151 | # These work for Emacs versions 18-23, so don't change them. |
| 145 | EMACSFLAGS="-batch -q --no-site-file" |
152 | EMACSFLAGS="-batch -q --no-site-file" |
|
|
153 | |
|
|
154 | # @ECLASS-VARIABLE: BYTECOMPFLAGS |
|
|
155 | # @DESCRIPTION: |
|
|
156 | # Emacs flags used for byte-compilation in elisp-compile(). |
|
|
157 | BYTECOMPFLAGS="-L ." |
| 146 | |
158 | |
| 147 | # @FUNCTION: elisp-compile |
159 | # @FUNCTION: elisp-compile |
| 148 | # @USAGE: <list of elisp files> |
160 | # @USAGE: <list of elisp files> |
| 149 | # @DESCRIPTION: |
161 | # @DESCRIPTION: |
| 150 | # Byte-compile Emacs Lisp files. |
162 | # Byte-compile Emacs Lisp files. |
|
|
163 | # |
|
|
164 | # This function uses GNU Emacs to byte-compile all ".el" specified by its |
|
|
165 | # arguments. The resulting byte-code (".elc") files are placed in the same |
|
|
166 | # directory as their corresponding source file. |
|
|
167 | # |
|
|
168 | # The current directory is added to the load-path. This will ensure that |
|
|
169 | # interdependent Emacs Lisp files are visible between themselves, in case |
|
|
170 | # they require or load one another. |
| 151 | |
171 | |
| 152 | elisp-compile() { |
172 | elisp-compile() { |
| 153 | ebegin "Compiling GNU Emacs Elisp files" |
173 | ebegin "Compiling GNU Emacs Elisp files" |
| 154 | ${EMACS} ${EMACSFLAGS} -f batch-byte-compile "$@" |
174 | ${EMACS} ${EMACSFLAGS} ${BYTECOMPFLAGS} -f batch-byte-compile "$@" |
| 155 | eend $? "batch-byte-compile failed" |
175 | eend $? "batch-byte-compile failed" |
| 156 | } |
176 | } |
| 157 | |
177 | |
| 158 | # @FUNCTION: elisp-comp |
178 | # @FUNCTION: elisp-comp |
| 159 | # @USAGE: <list of elisp files> |
179 | # @USAGE: <list of elisp files> |