Emacs28.1ネイティブコンパイル版をmacOSでビルドする
コード書いとる?
Emacs28.1がリリースされたのでビルド経過をメモ書き。ここはnote
ネイディブコンパイル
Lispファイルをネイティブコンパイルして高速化してるという事なのだが...すごいな... (いつもEmacsの貴重な記事ありがとうございます!)
これを試すには2つほどHomebrewのパッケージを導入する必要があります(そうしないとconfigureでエラーになります)
brew install gcc
brew install libgccjit
パッチを用意
ソースコードを公式からダウンロード
日本語入力やその他痒い所に手が届く素敵なパッチ(ftp://ftp.math.s.chiba-u.ac.jp/emacs/)があるのでダウンロードしてソースコードと同じ場所に配置
ビルドスクリプト
いつも使っているやつを載せときます(⇒gist)
#!/bin/bash
EMACS_VER=28.1
MACPORT_VER=9.0
tar xvfz emacs-${EMACS_VER}.tar.gz
tar xvfz emacs-${EMACS_VER}-mac-${MACPORT_VER}.tar.gz
cd emacs-${EMACS_VER}
patch -p 1 < ../emacs-${EMACS_VER}-mac-${MACPORT_VER}/patch-mac
cp -r ../emacs-${EMACS_VER}-mac-${MACPORT_VER}/mac mac
cp ../emacs-${EMACS_VER}-mac-${MACPORT_VER}/src/* src
cp ../emacs-${EMACS_VER}-mac-${MACPORT_VER}/lisp/term/mac-win.el lisp/term
cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
installprefix=`pwd`/build
app_dir=$installprefix/Emacs.app/Contents/Resources
compver=x86_64-apple-darwin`uname -r`
# LIBXML2 for Catalina
MACSDK=`xcrun --show-sdk-path`
export LIBXML2_CFLAGS="-I${MACSDK}/usr/include/libxml2"
export LIBXML2_LIBS="-lxml2"
set -e
./autogen.sh
./configure --without-x --without-dbus --without-xpm CC=clang CFLAGS='-Os' --enable-mac-app=$installprefix --prefix=$installprefix --enable-mac-self-contained --with-native-compilation
make
make install
set +e
echo 'Done! Find your Emacs.app at '$installprefix'.'
今回はLispネイティブコンパイル機能とEmacs.appに実行ファイル諸々含むオプションを追加しました(いままでスクリプトでコピーしていた手間が省けて助かります)
--enable-mac-self-contained
--with-native-compilation
初回起動時にモーレツにネイティブコンパイルされるw
そして全体的にキビキビ動作する感じがする!(よくわからん)
スッキリ!