This is a very simple wrapper script to distclean, configure, make, install and execute Emacs. Changes can be made to the variables inside the script, which will help drive how Emacs can be compiled, installed and executed.
First off, you’ll need to install the source code to Emacs, adjust EMACSCOMPILEHOME
. You can either
fetch and extract a static tarball of the source, or you can access either of the git repositories.
Tarballs are usually a fixed point in the stage of Emacs development, but git repositories have multiple threads of development, meaning there’s a requirement to select the correct one if you don’t simply want to use the latest available code, often labeled the master branch. This is always a moving target, so people often select a version branch, or perhaps a specific point in one of those branches, such as an official release point.
Tarballs are created at these points, making them useful for snapshots where nothing much will change in the future. It also means there’s no expected future additions to that development unless you make the effort to update on a regular basis.
If you grab code from the git repositories, be aware that there are multiple branches of Emacs code that you can build, so check out what’s available for compiling, select one, and you’ll be off. You will of course need to know how to use git, and how to select the correct branch of Emacs to compile.
Because you’re compiling Emacs, you can choose which libraries to compile Emacs with; adjust the
EMACSCONFIGPARAMS
array for this. You might want to check the output of emacsmake -ch
from
within the source directory to see what parameters are supported.
This will include choosing the place to put the compiled version of Emacs, adjust EMACSHOME
. Note
that this is the root of the tree where the whole of Emacs will eventually live, not the location of
the Emacs binary itself. Usually directories will be created below this point for the libraries, the
binaries and the compiled lisp code to live. The usual place that is selected if you don’t specify
it would be /usr/local
, just as with a lot of other configure-based build systems.
If you’re also going to compile with support for other things such as libjansson, then make sure the required -dev/-devel packages are also installed.
At the moment, this script will run Emacs using the with-emacs.sh
script, available from
https://github.com/alphapapa/with-emacs.sh - if you wish to run the compiled Emacs from anywhere not
already on the user’s PATH
, you will want to either add the installation directory (of the Emacs
binary):
$ export PATH=${PATH}:${HOME}/bin/<new-location>/bin/emacs
as an example, or edit with-emacs.sh
suitably to run the Emacs binary from a new location. Don’t
forget to install the script somewhere on your PATH
.
To supply a different configuration directory to execute Emacs with, adjust EMACSCONFHOME. This will affect the running of with-emacs.sh.
At this stage, I haven’t got the foggiest idea what else I need, though I’ve already simplified this by removing the whole “execute Emacs” stage, leaving that up to the with-emacs.sh script.
The usual applies to anyone who wants to report bugs, issues or even suggestions with emacsmake, check out the issues section of this project.
If you want to report a bug regarding Emacs itself, they have a mailing list hosted at https://lists.gnu.org/emacs-devel/
and the project page is hosted at http://savannah.gnu.org/projects/emacs/