Flaky Goodness

Building Emacs 30 on macOS

December 10, 2025

This is an update to my post about compiling Emacs 29.4 from source. Emacs has been moving forward but unfortunately my beloved Mitsuharu Emacs Mac Port has not. Happily JD Smith has picked up the mantle and there is an up-to-date (albeit experimental) Emacs 30 fork on GitHub. This post documents the steps I took to build Emacs 30.2 on my M3 MacBook Pro.

Remove existing Emacs

Backup and delete /Applications/Emacs.app if you have one. I highly encourage you to keep a backup of your old Emacs around for a while in case you hit any snags building the new one.

Update Xcode command-line tools

Don’t skip this step of reinstalling the latest version of the tools. You’ll need to install Xcode first if you don’t already have it. I was using Xcode 16.4 when I went through this process.

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

Install/re-install dependencies

brew update
brew reinstall gcc
brew install libgccjit pkgconf texinfo tree-sitter jansson

Get a fresh clone of Emacs

The only branch I was able to successfully build was emacs-mac-30.2, but that might have changed by the time you read this.

git clone https://github.com/jdtsmith/emacs-mac
cd emacs-mac
git checkout emacs-mac-30.2

Configure and make

I used the self-contained configuration and followed the instructions in the README.md on the GitHub page.

./autogen.sh

CFLAGS="-O2 -mcpu=native" ./configure --with-native-compilation \
  --with-tree-sitter \
  --with-xwidgets \
  --enable-mac-app=yes \
  --enable-mac-self-contained

make -j6

make install

I am so happy that this project has found new life and that this flavor of Emacs will continue to be available for Mac users.