Skip to main content
  1. Posts/

Build Emacs From Source

·201 words·1 min· ·
Emacs Linux WSL
Table of Contents

Windows 11 features built-in support for running Linux GUI applications. Emacs 29 has became a real GTK application, gone with the blurry fonts problem.

Install Essential Packages
#

Firstly, install essential packages in WSL2 Ubuntu 24.04. Native compilation support is enabled by default with Emacs 30, install libgccjit0 and libgccjit-xx-dev to build this feature.

apt-get update
apt-get install build-essential libgtk-3-dev libgnutls28-dev libtiff5-dev libgif-dev libjpeg-dev libpng-dev libxpm-dev libncurses-dev texinfo sqlite3 libsqlite3-dev libjansson4 libjansson-dev autoconf
apt-get install libgccjit0 libgccjit-13-dev

Tree-sitter Support
#

And in Emacs 29, tree-sitter support is built-in. Now build tree-sitter from source code, tree-sitter library will be installed into /usr/local/lib.

git clone https://github.com/tree-sitter/tree-sitter.git
cd tree-sitter
git checkout v0.24.3
make
make install
export LD_LIBRARY_PATH=/usr/local/lib/

Install Emacs
#

Now build emacs with pgtk and tree-sitter.

git clone https://git.savannah.gnu.org/git/emacs.git
cd emacs
./autogen.sh
./configure --prefix=/usr/local/emacs --with-native-compilation=aot --with-pgtk --with-tree-sitter --without-pop
make -j 8
make install

Install libvterm
#

Build libvterm if you need to use vterm on Linux.

tar -zxf libvterm-0.3.3.tar.gz
cd libvterm-0.3.3
make
make install

FAQs
#

When run emacs with WSL Ubuntu 24.04, Ubuntu 24.04 Wayland falling back to X11.

Due to a bug of systemd fixed in 24.04, you must do :

ln -sf  /mnt/wslg/runtime-dir/wayland-* $XDG_RUNTIME_DIR/

Or use an autostart conf: https://github.com/viruscamp/wslg-links