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).
Lisp sources are not distributed by default. You can prefix the
LISP
primary with dist_
, as in dist_lisp_LISP
or
dist_noinst_LISP
, to indicate that these files should be
distributed.
Automake will byte-compile all Emacs Lisp source files using the Emacs
found by AM_PATH_LISPDIR
, if any was found. When performing such
byte-compilation, the flags specified in the (developer-reserved)
AM_ELCFLAGS
and (user-reserved) ELCFLAGS
make variables
will be passed to the Emacs invocation.
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 do not 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.
Since Automake 1.8, we now recommend using lisp_DATA
instead:
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.