You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.3 KiB

4 years ago
# emacs-build
4 years ago
Scripts to build a distribution of Emacs from sources, using MSYS2 and Mingw64(32)
# Rationale
I wanted a script to build Emacs from sources, package it and install it on
different computers, with the following conditions
- I should be able to build any branch or release from Emacs. This includes
the last release branch (right now emacs-27), as well as the master branch
for development. Always using pristine sources from Savannah.
- I want to build emacs with different options from the default, which is to
use all features available. For instance, I do not care for SVG support.
- The script needs to track all packages that are required by the Emacs build
even if I change the build options.
- The installation should take as little space as possible, removing useless
directories or files that come from the dependencies. For instance, headers
from libraries used by emacs, spurious documentation files, etc.
- Eventually, the script should be able to build other components I regularly
use, such as mu, mu4e or pdf-tools.
# Usage
````
./emacs-build.sh [-64] [-32] [--branch b]
[--clone] [--ensure] [--build] [--deps] [--package]
[--without-X] [--with-X]
Actions:
--clone Download Savannah's git repository for Emacs
--ensure Ensure that required packages are installed
--build Configure and build Emacs from sources
--deps Create a ZIP file with all the Mingw64/32 dependencies
--package Package an Emacs previously built with the --build option
Multiple actions can be selected. The default is to run them all in a logical
order: clone, ensure, build, deps and package.
Options:
-64 Prepare or build for Mingw64 (default)
-32 Prepare or build for Mingw32
--branch b Select branch 'b' for the remaining operations
--slim Remove Cairo, SVG and TIFF support for a slimmer build
Remove also documentation files and other support files
from the dependencies file
--with-X Add requested feature in the dependencies and build
--without-X Remove requested feature in the dependencies and build
X is any of the known features for emacs in Windows/Mingw:
$all_features
````