April 10, 2022
The Emacs Mac Port has been updated for Emacs 28.1 and here are the steps I used to build and install it on my M1 MacBook Air. Overall the process seems much smoother than the pre-release build experience but as always YMMV.
brew reinstall gcc brew install libgccjit texinfo brew ln texinfo --force
I'm not sure why it was necessary to reinstall
gcc (maybe an architecture issue?), but it seemed to help with a build error in a subsequent step. Also
texinfo provides an updated
makeinfo which is now no longer optional in the Emacs build process.
Add this to your shell path (necessary so that the
makeinfo provided by
texinfo is seen before the older macOS-provided version).
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install
Again, something was wedged in the subsequent build process until I took this step, as recommeded in this GitHub thread.
These steps also apply the (optional) multi-tty patch that I've written about before.
git clone https://bitbucket.org/mituharu/emacs-mac cd emacs-mac git checkout emacs-28.1-mac-9.0 autoreconf -i wget https://gist.github.com/genegoykhman/6effe7fa25696c49d0519af877f5fb42/raw -O multi-tty.patch git apply multi-tty.patch
./configure \ --with-native-compilation \ --with-modules \ --enable-mac-app \ --prefix=/Applications/Emacs.app/Contents/Resources make install
The above steps will update your
/Applications/Emacs.app in place, so if you had
emacsclient in a different subdirectory (as I did) you may want to replace any symbolic links to the newly build version at
If all goes well you should be able to start Emacs and
(emacs-version) will report 28.1. The new native-compilation feature will churn through your startup Elisp and probably spew a ton of warnings, but eventually you'll notice that Emacs feels much zippier.
If you don't see any
(comp) warnings on first startup you might just want to check that native compilation is working ...
(fboundp 'native-compile-async) should return