summaryrefslogtreecommitdiff
path: root/emacsen-common/install
blob: 2e1198404f16e829cdc698ae2acebeeedc3ee1fb (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
#!/bin/sh
# /usr/lib/emacsen-common/packages/install/${PACKAGE}

set -e

ELPA_DIR=#ELPAPACKAGE#-#ELPAVERSION#

FLAVOR=$1
case $FLAVOR in
    emacs)
        exit 0
        ;;
    emacs2[0123]*)
        echo install/${ELPA_DIR}: Skipping obsolete emacs ${FLAVOR}
        exit 0
        ;;
    xemacs*)
        echo install/${ELPA_DIR}: Skipping unsupported emacs ${FLAVOR}
        exit 0
        ;;
    *)
        echo install/${ELPA_DIR}: Handling install of emacsen flavor ${FLAVOR}
esac

src_dir=/usr/share/emacs/site-lisp/elpa-src
el_dir=$src_dir/${ELPA_DIR}/
elc_dir=/usr/share/${FLAVOR}/site-lisp/elpa/${ELPA_DIR}/

export EMACSLOADPATH
EMACSLOADPATH="/usr/share/emacs/site-lisp:"

echo install/${ELPA_DIR}: byte-compiling for ${FLAVOR}

[ -d ${elc_dir} ] || mkdir -p ${elc_dir}

# Create symlinks to the .el files (see section 6E in debian-emacs
# polcy).  This makes complation easy, and also allows find-function
# and find-library to work properly.  Also link all other top level
# files and directories into the flavor directory
(cd ${elc_dir} && ln -sf ${el_dir}/* .)

# Byte compile them
(cd ${elc_dir}
 set +e
 ${FLAVOR} -q -batch -l package \
           --eval "(add-to-list 'package-directory-list \"$src_dir\")" \
           -f package-initialize -f batch-byte-compile *.el > Install.log 2>&1
 if test $? -ne 0
 then
   cat Install.log
   exit 1
 fi
 set -e
 gzip -9f Install.log)

exit 0;