Metadata-Version: 2.1
Name: elispcomp
Version: 1.0.2
Summary: Compiling Emacs Lisp code from the command-line
Home-page: https://github.com/jamescherti/elispcomp
Author: James Cherti
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Environment :: Console
Classifier: Environment :: Plugins
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: POSIX :: Other
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Text Editors
Classifier: Topic :: Utilities
Requires-Python: >=3.6, <4
Description-Content-Type: text/markdown

# elispcomp - Compiling Emacs Lisp code from the command-line

The `elispcomp` command-line tool allows compiling Elisp (Emacs Lisp) code efficiently, providing optimized .elc and .eln files for improved performance in Emacs.

This tool simplifies the compilation of Emacs Lisp (Elisp) code by generating optimized .elc and .eln files directly from the command-line. Utilizing Emacs, it recursively compiles all Elisp files within a specified directory. The tool supports various compilation configurations, enabling users to adapt the process to their specific needs.

With an emphasis on simplicity and efficiency, it offers a powerful solution for managing and optimizing Emacs Lisp codebases from the command-line.

## Installation

Here is how to install `elispcomp` using pip:
```
pip install --user elispcomp
```

The pip command above will install the `elispcomp` executable in the directory `~/.local/bin/`.

## Usage

Here is an example of how to byte-compile and native-compile all .el files located in the `~/.emacs.d/lisp` directory. The native-compiled files will be stored in the `~/.eln-cache` directory:
```
elispcomp --eln-cache ~/.eln-cache ~/.emacs.d/lisp
```

The available options are as follows:
```
usage: elispcomp [--option] [N]

Recursively byte and native compile .el files.

positional arguments:
  N                     The directories to be scanned recursively by Emacs to locate the '.el' files for compilation.

options:
  -h, --help            show this help message and exit
  -c ELN_CACHE, --eln-cache ELN_CACHE
                        The eln-cache directory where Emacs stores the compiled native compiled code. Defaults to the default Emacs eln-cache directory.
  -e EMACS_BIN, --emacs-bin EMACS_BIN
                        Path to the Emacs binary. Defaults: emacs
  -j JOBS, --jobs JOBS  Specify the number of parallel jobs for compilation. Default: Half the number of available CPUs
  -b, --disable-byte-comp
                        Disable byte-compile. Default: enabled
  -n, --disable-native-comp
                        Disable native compilation. Default: enabled
  -a LOAD_PATH, --load-path LOAD_PATH
                        Recursively adds the subdirectories of the specified directory to the Emacs `load-path`. This option can be used multiple times to
                        include several directories.
```

## License

Copyright (c) [James Cherti](https://www.jamescherti.com).

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 3 of the License, 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 <https://www.gnu.org/licenses/>.

## Links

- [The 'elispcomp' Git repository](https://github.com/jamescherti/elispcomp)
