見出し画像

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

そして全体的にキビキビ動作する感じがする!(よくわからん)

スッキリ!


いいなと思ったら応援しよう!

この記事が参加している募集