Plamo Linux 日記

Plamo Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Windows 用に ime パッチを当てて Emacs 26.2 を手元でビルド

久しぶりに emacs の話題かな.

Emacs 26.2 がリリースされたってことで,Windows 用の Emacs 26.2 を手元の環境でビルド.

以前の Emacs 25.3 の時の記事も書いてありますが,基本的に内容は同じです.

toshi-mtk.hatenablog.com

ざっと手順を書くと下記のような感じ.詳細は emacs 用の ime パッチなどと一緒に配布されているドキュメントなどを参考にしてください.

まず msys2 の環境を整えます.詳細は msys2 のホームページなどを参考にしてください.私の場合は,過去に構築した環境があるのでそれをそのまま使います.

とりあえず,手元の msys2 環境をアップデート.コマンドは全部 mingw64.exe を実行したコンソール画面から実行しています.

% pacman -Syuu

この後,ゼロから作業する場合はビルドに必要なパッケージをインストールする作業が必要です.私の場合は環境を使いまわしていましたが,念のためにパッケージのインストールコマンドを実行.

% pacman -S base-devel
% pacman -S mingw-w64-x86_64-gcc
% pacman -S mingw-w64-x86_64-giflib
% pacman -S mingw-w64-x86_64-gnutls
% pacman -S mingw-w64-x86_64-lcms2
% pacman -S mingw-w64-x86_64-librsvg
% pacman -S mingw-w64-x86_64-xpm-nox

で,emacs-26.2.tar.xz をダウンロードしてきて,ime パッチ適用.パッチは https://gist.github.com/rzl24ozi から頂いたと思います.感謝.手元では 26.1-rc1 用パッチをそのまま使っていますが,気になる方は新しいものを使った方が良いかと思います.一応,26.1-rc1 用でも reject は出ていませんでした.

% xz -dc emacs-26.2.tar.xz | tar xvf -
% cd emacs-26.2
% patch -p0 < ../emacs-26.1-rc1-w32-ime.diff

でビルド.下記の例は c:/emacs/emacs-26.2 以下に入れる場合です.

% ./autogen.sh
% ./configure --prefix=/C/emacs/emacs-26.2
% make -j4
% make install

以前使っていた c:/emacs/emacs-25.3 の下から必要な elispemacs-26.2 以下に手作業でコピー.

% cp -pr /C/emacs-25.3/share/emacs/site-lisp/* /C/emacs-26.2/share/emacs/site-lisp/

あとは単独で emacs を実行できるように c:/msys64/mingw64/bin 以下にある dll を c:/emacs/emacs-26.2/bin 以下にコピー.必要ないものも含まれるかもしれないけど,自分で使う用なのでとりあえず気にしない.

% cp -p /mingw64/bin/*.dll /C/emacs/emacs-26.2/bin

この状態で,Windowsエクスプローラなどから C:/emacs/emacs-26.2/bin/runemacs.exe をクリックして Emacs が実行できることを確認.

この状態で c:/emacs/emacs-26.2 以下全体を zip で固めておいてバックアップ.ほかのマシンで使いたいときにはこの zip を持って行って解凍するだけで使えるようにね.

この blog 記事も,一応,上記のように作成した Windows 用の emacs-26.2 で書いていますがざっと試してる限りでは問題なさそうな雰囲気.

以上,参考まで.

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

 
入門 GNU Emacs 第3版

入門 GNU Emacs 第3版

 
リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)

リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)