Next: , Up: Other GNU Tools   [Contents][Index]


9.1 Emacs Lisp

Automake provides some support for Emacs Lisp. The ‘LISP’ primary is used to hold a list of .el files. Possible prefixes for this primary are ‘lisp_’ and ‘noinst_’. Note that if lisp_LISP is defined, then configure.ac must run AM_PATH_LISPDIR (see Autoconf macros supplied with Automake).

Automake will byte-compile all Emacs Lisp source files using the Emacs found by AM_PATH_LISPDIR, if any was found.

Byte-compiled Emacs Lisp files are not portable among all versions of Emacs, so it makes sense to turn this off if you expect sites to have more than one version of Emacs installed. Furthermore, many packages don’t actually benefit from byte-compilation. Still, we recommend that you byte-compile your Emacs Lisp sources. It is probably better for sites with strange setups to cope for themselves than to make the installation less nice for everybody else.

There are two ways to avoid byte-compiling. Historically, we have recommended the following construct.

lisp_LISP = file1.el file2.el
ELCFILES =

ELCFILES is an internal Automake variable that normally lists all .elc files that must be byte-compiled. Automake defines ELCFILES automatically from lisp_LISP. Emptying this variable explicitly prevents byte-compilation to occur.

Since Automake 1.8, we now recommend using lisp_DATA instead. As in

lisp_DATA = file1.el file2.el

Note that these two constructs are not equivalent. _LISP will not install a file if Emacs is not installed, while _DATA will always install its files.