summaryrefslogtreecommitdiffstats
path: root/emacs-lisp/FUNCTIONS
blob: 3ba3376b9bbbc9a590b5934866b3c8f80644cf7c (plain) (blame)
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
#-------------------------------------------------------------------------
## Helper to install extra directories and files.
#-------------------------------------------------------------------------
function emacs_lisp_install() {
  cp -vr "${@/#/$SOURCE_DIRECTORY/}" \
    "$INSTALL_ROOT/usr/share/emacs/site-lisp/$SPELL/"
}

#-------------------------------------------------------------------------
## Section-default build script.
#-------------------------------------------------------------------------
function default_build_emacs_lisp() {
  [ $# = 0 ] && set -- "$SOURCE_DIRECTORY"

  find "$@" -maxdepth 1 -name \*.el \
       -execdir emacs -Q -L . --batch -f batch-byte-compile {} + \
       -execdir gzip -9 {} + \
       -o \( -name \*.txi -o -name \*.texi \) -print |
  while read file; do
    local t=$(mktemp -p "$SOURCE_DIRECTORY")
    makeinfo -o - "$file" | gzip -9 > "$t" &&
    mv "$t" "${file%.t*xi}.info.gz"
  done
}

#-------------------------------------------------------------------------
## Section-default install script.
#-------------------------------------------------------------------------
function default_install_emacs_lisp() {
  [ $# = 0 ] && set -- "$SOURCE_DIRECTORY"

  local dir="$INSTALL_ROOT/usr/share/emacs/site-lisp/$SPELL"
  local info_dir="$INSTALL_ROOT/usr/share/info"

  install -d -m755 "$dir" &&
  find "$@" -maxdepth 1 \( -name \*.el.gz -o -name \*.elc \) \
       -exec install -m644 -t "$dir" {} + \
       -o -name \*.info.gz \
       -exec install -m644 -t "$info_dir" {} \; -print0 |
  sed -z "s@.*/@$info_dir/@" | xargs -r0 install-info --info-dir="$info_dir" &&
  emacs -Q --batch --eval "(setq generated-autoload-file (expand-file-name \"$dir/../loaddefs.el\"))" \
                   --eval "(setq make-backup-files nil)" -f batch-update-autoloads "$dir"
}

function default_build() {
   default_build_emacs_lisp
}

function default_install() {
   default_install_emacs_lisp
}