| #!/bin/sh | |
| # Copyright (C) 1995, 2000, 2003, 2004, 2005, 2009, 2010 Free Software | |
| # Foundation, Inc. | |
| scriptversion=2010-02-06.18; # UTC | |
| # Franc,ois Pinard <pinard@iro.umontreal.ca>, 1995. | |
| # | |
| # This program is free software; you can redistribute it and/or modify | |
| # it under the terms of the GNU General Public License as published by | |
| # the Free Software Foundation; either version 2, or (at your option) | |
| # any later version. | |
| # | |
| # This program is distributed in the hope that it will be useful, | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| # GNU General Public License for more details. | |
| # | |
| # You should have received a copy of the GNU General Public License | |
| # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| # As a special exception to the GNU General Public License, if you | |
| # distribute this file as part of a program that contains a | |
| # configuration script generated by Autoconf, you may include it under | |
| # the same distribution terms that you use for the rest of that program. | |
| # This file is maintained in Automake, please report | |
| # bugs to <bug-automake@gnu.org> or send patches to | |
| # <automake-patches@gnu.org>. | |
| case $1 in | |
| '') | |
| echo "$0: No files. Try \`$0 --help' for more information." 1>&2 | |
| exit 1; | |
| ;; | |
| -h | --h*) | |
| cat <<\EOF | |
| Usage: elisp-comp [--help] [--version] FILES... | |
| This script byte-compiles all `.el' files listed as FILES using GNU | |
| Emacs, and put the resulting `.elc' files into the current directory, | |
| so disregarding the original directories used in `.el' arguments. | |
| This script manages in such a way that all Emacs LISP files to | |
| be compiled are made visible between themselves, in the event | |
| they require or load-library one another. | |
| Report bugs to <bug-automake@gnu.org>. | |
| EOF | |
| exit $? | |
| ;; | |
| -v | --v*) | |
| echo "elisp-comp $scriptversion" | |
| exit $? | |
| ;; | |
| esac | |
| if test -z "$EMACS" || test "$EMACS" = "t"; then | |
| # Value of "t" means we are running in a shell under Emacs. | |
| # Just assume Emacs is called "emacs". | |
| EMACS=emacs | |
| fi | |
| tempdir=elc.$$ | |
| # Cleanup the temporary directory on exit. | |
| trap 'ret=$?; rm -rf "$tempdir" && exit $ret' 0 | |
| do_exit='(exit $ret); exit $ret' | |
| trap "ret=129; $do_exit" 1 | |
| trap "ret=130; $do_exit" 2 | |
| trap "ret=141; $do_exit" 13 | |
| trap "ret=143; $do_exit" 15 | |
| mkdir $tempdir | |
| cp "$@" $tempdir | |
| ( | |
| cd $tempdir | |
| echo "(setq load-path (cons nil load-path))" > script | |
| $EMACS -batch -q -l script -f batch-byte-compile *.el || exit $? | |
| mv *.elc .. | |
| ) || exit $? | |
| (exit 0); exit 0 | |
| # Local Variables: | |
| # mode: shell-script | |
| # sh-indentation: 2 | |
| # eval: (add-hook 'write-file-hooks 'time-stamp) | |
| # time-stamp-start: "scriptversion=" | |
| # time-stamp-format: "%:y-%02m-%02d.%02H" | |
| # time-stamp-time-zone: "UTC" | |
| # time-stamp-end: "; # UTC" | |
| # End: |