【Windows/msys2】Emacs 26.1の64bit版をビルドする

スポンサーリンク

以前の記事で、Emacs 25.3をビルドして使う記事を紹介したが、2018/5/28にEmacs 26.1が公開された。そこで、msys2環境の64bit環境(mingw64)でEmacsを26.1をビルドし動かしたので備忘録を残す。

以前は、msys2のmingw32環境で動かしていたが、今回はmingw64の64bit環境で動かす。

msys2でWindows上でのビルド環境をつくる(msys2のインストール)
GNU makeやコンパイラが動かせる環境を、Windows上にmsys2をインストールしてつくる。 Unixのbashライクなコマンドラインが使えるようになるソフトだが、このようなソフトは、他にはCygwinやMinGWなどがある。msy...
  • Emacs 26では「gnutls」パッケージが必要なようで、未インストールなら pacman -S mingw-w64-x86_64-gnutls でインストールしておく。

ソースファイルの入手

IMEパッチをあててビルドが必要なので、下記からソースとパッチファイルを入手。

http://ftp.gnu.org/gnu/emacs/
上記サイトから、emacs-26.1.tar.xz ファイルを取得

https://gist.github.com/rzl24ozi
上記サイトから、emacs-26.1-rc1-w32-ime.diff ファイルを取得

Emacsソースファイルの展開とIMEパッチの適用

msys2のコンソール(mingw64.exe)から、上記で入手した2つのファイルを任意のフォルダに置き、下記コマンドを実行。

$ tar xvf emacs-26.1.tar.xz
$ cd emacs-26.1/
$ patch.exe -p0 < ../emacs-26.1-rc1-w32-ime.diff

ビルド

autogen.shとconfigureの実行

$ ./autogen.sh
$ CFLAGS='-Ofast -march=x86-64 -mtune=corei7 -static' ./configure --without-dbus --without-compress-install --with-modules

makeの実行

$ make bootstrap

インストール(以前のバージョンがある場合はアンインストールしておく)

$ make install-strip

msys2の各環境binフォルダ(c:/msys64/mingw64/bin)にインストールされる。
案外素直にビルド出来た。

アンインストール

アンインストールしたい場合は、ビルドしたフォルダで下記コマンドを実行。

$ make uninstall

Emacsの起動

msys2のコンソールから、下記コマンドでバージョン確認できる。

$ emacs --version
GNU Emacs 26.1
Copyright (C) 2018 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

Emacsの起動は

$ runemacs

尚、Emacsの終了は

C-x C-c

コマンドから抜けるには

C-g

Emacs初期設定ファイル(~/.emacs.d/)

私の使っているEmacs初期設定ファイル一式(~/.emacs.d/)はGitHubに公開登録しGit管理しているので、それを下記コマンドでホームディレクトリにコピー。尚、macOS, msys2(Windows), Ubuntu(Linux)で共用。
Emacs 26.1でもそのまま利用できた。

$ git clone https://github.com/jr4qpv/dot.emacs.d.git ~/.emacs.d
【Emacs 25-29】初期設定ファイル(~/.emacs.d/)をGitHubに公開
これまで紹介してきた、私の使ってるEmacsの初期設定ファイル「~/.emacs.d/」をGitHub(下記URL)に公開した。macOS, Windows, Linuxで共用。 Emacsの初期状態ではお世辞にも使い勝手がいいとは言えない...
【Windows/msys2】Emacsをログイン時に常駐させ、emacsclientでEmacs起動を高速化
Emacsはお世辞にも起動時間は早いとは言えない。特に、init-loaderを使って初期設定ファイルを機能分割してファイル数が増えてきたりすると見通しは良くなる一方で、起動時間は遅くなる。 そこでEmacsのServer機能を利用して改善...

cmigemoのインストール

ローマ字のまま日本語を検索できるように、cmigemoをmsys2にインストール。(下記記事参照)

【Emacs/msys2】migemoを有効にし、ローマ字のまま日本語検索する
前記事で、Emacs(macOS)での migemo の設定ついて紹介したが、msys2(Windows環境)のEmacsで、migemoインクリメンタル検索を使えるようにしたので備忘録を残す。 migemo はローマ字のまま日本語を検索す...

不具合?

  • 私はATOK2017を利用しているが、Emacsを最初に起動した直後にIMEのOn/Offしようとして[半角/全角]キーを押すと「<enlw> is undefined」と表示されてIMEの切り換えができない。(Emacs25の時は大丈夫だった)
    調べてみると、Emacsのウインドウをマウスでドラッグして移動するとOKになる。根本原因はわからないが、とりあえずこれで使っていく事にする。何か対策がわかったら、また報告していきたい。

補足

  • ビルドは、マシン性能にもよるが1時間くらいかかる。
  • msys2では、emacsパッケージが利用できるが、試してみると私の環境では日本語入力が不便だったので、日本語IMEパッチをあててソースからビルドした。
  • 64bit版を常駐していても、emacsclientコマンドさえ実行できれば、mingw32環境からでも利用できる。
  • 64bit版の方が、32bit版に比べて体感できるくらい反応がよい。
  • 最初「configure: error: The following required libraries were not found: gnutls」のエラーがでたので、mingw-w64-x86_64-gnutlsパッケージをmsys2に追加インストールした。

追記(2019/6/18)

Emacs 26.2では、オリジナルのソースコードに「簡易IME対応」が取り込まれたようなので、GNUで公開のものをそのままインストールして使う事にした。

【Windows/msys2】Emacs 26.2の64bit版をインストール(pacmanパッケージから)
以前の記事で、Emacs 26.1をビルドして使う記事を紹介したが、2019/4/12にEmacs 26.2が公開された。 これまではIMEパッチを当てるためにEmacsのソースからビルドして使っていたが、Emacs 26.2ではオリジナル...

参照記事

【Emacs 25-29】初期設定ファイル(~/.emacs.d/)をGitHubに公開
これまで紹介してきた、私の使ってるEmacsの初期設定ファイル「~/.emacs.d/」をGitHub(下記URL)に公開した。macOS, Windows, Linuxで共用。 Emacsの初期状態ではお世辞にも使い勝手がいいとは言えない...
【Emacs 25-29】macOS, Windows, Ubuntuで共通なエディター環境を構築(まとめ)
macOS, Windows(msys2), Ubuntu-Server/Desktopで共通操作性のエディターを目指して、「Emacs」環境を構築してきた。 私も実際に使ってきて実用的になってきた。本サイトでも断片的に紹介してきたのをまと...
【Windows10/WSL Ubuntu, Ubuntu 18.04】Emacs25を使う
以前の記事で、Windows10のWSLでUbuntuが使えるようにした。そこで、Emacsエディターも動くようにしたので備忘録を残す。 WSLとはいえ基本的にはUbuntuなので、以前、Ubuntu 16.04 LTS Serverで「E...

参考

  1. GNU Emacs – GNU Project
  2. GitHub – chuntaro/NTEmacs64
  3. NTEmacsでの「 is undefined」「 is undefined」には,Windows + Space
  4. misc:software:Emacs:IMEを有効にする

コメント

タイトルとURLをコピーしました