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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.20