automake-1.16: Emacs Lisp

 
 10.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’ (⇒Macros).
 
    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.