#------------------------------------------------------------------------- ## 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 }