summaryrefslogtreecommitdiff
blob: f1807cab8afd515c3b0af811a1e645d2b5cbe406 (plain)
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
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/elisp.eclass,v 1.6 2003/07/22 05:06:33 george Exp $
#
# Author Matthew Kennedy <mkennedy@gentoo.org>
#
# This eclass sets the site-lisp directory for emacs-related packages.

ECLASS=elisp
INHERITED="$INHERITED $ECLASS"

SITELISP=/usr/share/emacs/site-lisp

elisp-install() {
	local subdir=$1
	dodir ${SITELISP}/${subdir}
	insinto ${SITELISP}/${subdir}
	shift
	doins $@
}

elisp-site-file-install() {
	local sitefile=$1
	pushd ${S}
	cp ${sitefile} .
	D=${S}/ dosed "s:@SITELISP@:${SITELISP}/${PN}:g" $(basename ${sitefile})
	insinto ${SITELISP}
	doins ${S}/$(basename ${sitefile})
	popd
}

elisp-site-regen() {
	einfo "Regenerating ${SITELISP}/site-start.el..."
	einfo ""
	cat <<EOF >${SITELISP}/site-start.el
;;; DO NOT EDIT THIS FILE -- IT IS GENERATED AUTOMATICALLY BY PORTAGE
;;; -----------------------------------------------------------------

EOF
	ls ${SITELISP}/[0-9][0-9]* |sort -n |grep -vE '~$' | \
	while read sf 
	do
		einfo "  Adding $sf..."  
		# Great for debugging, too noisy and slow for users though
# 		echo "(message \"Loading $sf...\")" >>${SITELISP}/site-start.el
		cat $sf >>${SITELISP}/site-start.el
	done
	einfo ""
}

# DEFAULT OVERRIDES

# SRC_URI should be set to wherever the primary app-emacs/ maintainer
# keeps the local elisp mirror, since most app-emacs packages are
# upstream as a single .el file

SRC_URI="http://cvs.gentoo.org/~mkennedy/app-emacs/${P}.el.bz2"
S="${WORKDIR}/"
newdepend "virtual/emacs"
IUSE=""

src_unpack() {
	unpack ${A}
	if [ "${SIMPLE_ELISP}" = 't' ]
	then
		cd ${S} && mv ${P}.el ${PN}.el
	fi 
}

src_compile() {
	emacs --batch -f batch-byte-compile --no-site-file --no-init-file *.el || die
}

src_install() {
	elisp-install ${PN} *.el *.elc
	elisp-site-file-install ${FILESDIR}/${SITEFILE}
}

pkg_postinst() {
	elisp-site-regen
}

pkg_postrm() {
	elisp-site-regen
}