Emacs: building from source on macOS
I've always wanted to build Emacs from source as it lets you try new features. Native compilation in particular was something I wanted to explore. Native compilation leverages
libgccjit to compile Emacs lisp code to native code making Emacs very snappy.
Why not use Homebrew? Homebrew is great and I still use it for installing dependencies like
libgccjit but recently Homebrew has started removing options on their code formulae which makes it a lot less convenient for messing around with emacs.
Let's get started.
brew install libxml2 gcc libgccjit
Clone Emacs 28 from savannah. We clone a single branch for a slightly smaller download size.
git clone https://git.savannah.gnu.org/git/emacs.git --branch emacs-28 --single-branch
cd emacs git checkout emacs-28 ./autogen.sh ./configure --with-cairo --with-imagemagick --with-xwidgets --with-native-compilation
Start the build. Worth pointing out building emacs from source does take some time
-j$(nproc) ensures you are at least using all your system's cores.
make -j$(nproc) make clean install
Move the executable to Applications folder.
mv nextSteps/Emacs.app /Applications
The only problem I ran into was Emacs not being able to find
libgccjit this was solved by making sure
exec-path-from-shell was the first package that loaded by use package in my
With this knowledge you can now build a specific version of Emacs with options you want to try. Liberating.