/emacs-on-windows-patches

Japanese IME patch and others for building with MinGW on Windows

Primary LanguageEmacs Lisp

Japanese IME patch and others for building with MinGW on Windows

GNU Emacs 29.4をWindows向けにMinGW(MSYS2)でコンパイルして使う人のためのパッチ - W32-IME組み込み

飛躍的に高速化したnative compileをするemacs、いわゆるgccemacsですが、Windowsでも自前でコンパイルすることで動作します。ビルド方法はBUILD.orgを参照してください。 今回からUCRT64環境でビルドすることにしました。

msys2のパッケージリポジトリには既にUCRT版が準備されていますので、以下のパッチを適用する必要がない場合は、それをインストールするとよいでしょう。https://packages.msys2.org/package/mingw-w64-ucrt-x86_64-emacs

IMEやcmigemoに関するパッチは、以下の情報由来のものです。Emacs 29.4のソースに適用できるように作成してあります。

about patches and how to build emacs on Windows. (Japanese)
日本語Windows向けのIMEパッチやcmigemoを組み込むためのパッチ情報と、Windows上でemacsをコンパイルして使うための情報が丁寧に記されています。

00-emacs-29.4-w32-ime.patch

emacs-26.1-rc1-w32-ime.diffと意味的に同じものです。

以下、abount patches and how to build emacs on Windows. (Japanese)からの引用です。

GNU emacs(x64)のIME関連部分を切り出したものです。

configureに以下のオプションを追加しています。
デフォルトでW32-IME, RECONVERSION, DOCUMENTFEEDが有効ですが無効にしたい場合に指定してください。

--without-w32-ime      : W32-IME無効(同時にRECONVERSION、DOCUMENTFEEDも無効)
--without-reconversion : RECONVERSION無効(同時にDOCUMENTFEEDも無効)
--without-documentfeed : DOCUMENTFEED無効

01-emacs-29.4-disable-w32-ime.patch

emacs-26.1-rc1-disable-w32-ime.diffと意味的に同じものです。

以下、abount patches and how to build emacs on Windows. (Japanese)からの引用です。

以下の関数を追加します。

(disable-w32-ime)    ; IME無効化(IMEをONにできなくなります)
(enable-w32-ime)     ; IME無効化を元に戻す
(w32-ime-disabled-p) ; IMEが無効化されている場合 t を返す

02-emacs-29.4-dontusereg.patch

addpm.exeの処理において各種パスのレジストリ登録処理を省きます。addpm.exeにはスタートメニューにemacsのショートカットを作成するといった機能があります。

03-emacs-29.4-cmigemo.patch

emacs-26.1-rc1-cmigemo.diffと意味的に同じものです。

以下、abount patches and how to build emacs on Windows. (Japanese)からの引用です。

GNU emacs(x64)でダイナミックロード機能が独自に実装される前のcmigemo組み込み部分です。

私はこのcmigemo組み込みパッチを好んで使っていますが、他に同rzl24ozi氏によるdynamic module版を使う方法もあります。

04-emacs-29.4-mingw32-remove-check.patch

configureスクリプトで行われる、imagemagickとlibgccjitに対するチェック処理がWindowsでは正常に行われないため、それらチェック処理を省きます。

001-ucrt.patch

UCRT版のソースに付属するパッチです。

Fix-MinGW-build-with-GCC14-and-later.patch

MinGWのGCC14.1以降だとコンパイルに失敗する事象を回避します。 https://mail.gnu.org/archive/html/bug-gnu-emacs/2024-05/msg01179.html https://github.com/emacs-mirror/emacs/commit/5216903ae6c3f91ebefb1152af40753f723cbc39

ビルド方法

ビルド方法はBUILD.orgを参照してください。日本の組織内では、プロキシを経由するネット環境が多いと思います。そういう環境の方にもつまずきが少なくなるように書きました。64bit環境を想定しています。

Windows上のemacsを使用するときに、同時に設定しておくと便利かもしれないもの

MISC.orgにまとめました。