Skip to content

This is a very simple wrapper script to distclean, configure, make, install and execute Emacs.

Notifications You must be signed in to change notification settings

brickviking/emacsmake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

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.

Variables and requirements

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.

Compile requirements

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.

Executing Emacs

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.

Future directions

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/

About

This is a very simple wrapper script to distclean, configure, make, install and execute Emacs.

Resources

Stars

Watchers

Forks