elisp-comp revision 1.1.1.1
1#!/bin/sh 2# Copyright (C) 1995, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. 3 4scriptversion=2005-05-14.22 5 6# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1995. 7# 8# This program is free software; you can redistribute it and/or modify 9# it under the terms of the GNU General Public License as published by 10# the Free Software Foundation; either version 2, or (at your option) 11# any later version. 12# 13# This program is distributed in the hope that it will be useful, 14# but WITHOUT ANY WARRANTY; without even the implied warranty of 15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16# GNU General Public License for more details. 17# 18# You should have received a copy of the GNU General Public License 19# along with this program; if not, write to the Free Software 20# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 22# As a special exception to the GNU General Public License, if you 23# distribute this file as part of a program that contains a 24# configuration script generated by Autoconf, you may include it under 25# the same distribution terms that you use for the rest of that program. 26 27# This file is maintained in Automake, please report 28# bugs to <bug-automake@gnu.org> or send patches to 29# <automake-patches@gnu.org>. 30 31case $1 in 32 '') 33 echo "$0: No files. Try \`$0 --help' for more information." 1>&2 34 exit 1; 35 ;; 36 -h | --h*) 37 cat <<\EOF 38Usage: elisp-comp [--help] [--version] FILES... 39 40This script byte-compiles all `.el' files listed as FILES using GNU 41Emacs, and put the resulting `.elc' files into the current directory, 42so disregarding the original directories used in `.el' arguments. 43 44This script manages in such a way that all Emacs LISP files to 45be compiled are made visible between themselves, in the event 46they require or load-library one another. 47 48Report bugs to <bug-automake@gnu.org>. 49EOF 50 exit $? 51 ;; 52 -v | --v*) 53 echo "elisp-comp $scriptversion" 54 exit $? 55 ;; 56esac 57 58if test -z "$EMACS" || test "$EMACS" = "t"; then 59 # Value of "t" means we are running in a shell under Emacs. 60 # Just assume Emacs is called "emacs". 61 EMACS=emacs 62fi 63 64tempdir=elc.$$ 65 66# Cleanup the temporary directory on exit. 67trap 'ret=$?; rm -rf "$tempdir" && exit $ret' 0 68trap '(exit $?); exit' 1 2 13 15 69 70mkdir $tempdir 71cp "$@" $tempdir 72 73( 74 cd $tempdir 75 echo "(setq load-path (cons nil load-path))" > script 76 $EMACS -batch -q -l script -f batch-byte-compile *.el || exit $? 77 mv *.elc .. 78) || exit $? 79 80(exit 0); exit 0 81 82# Local Variables: 83# mode: shell-script 84# sh-indentation: 2 85# eval: (add-hook 'write-file-hooks 'time-stamp) 86# time-stamp-start: "scriptversion=" 87# time-stamp-format: "%:y-%02m-%02d.%02H" 88# time-stamp-end: "$" 89# End: 90