Windowsで使うVimに関してはVimのサイトからZip版をDLしていましたが、これでは最新版が使えません。そこで、MinGWを使ってビルドしてみました。この記事はその備忘録です。
情報源
1.vim-jp
https://vim-jp.org/docs/build_windows_mingw.html
2.vim/srcの中の文書
INSTALLpc.txt(「2. Using MSYS2 with MinGW」「3. Using MinGW」)
Make_ming.mak
Make_cyg_ming.mak
3.Vimのヘルプ
:help version
msys2をインストール
自分の環境では既にmsys2がインストールされていたので、まずmsys2を最新状態にしました。
pacman -Suuy
ご親切に「MSYS2を終了して再実行するように言われた場合は、それに従ってminttyのウィンドウを閉じ、スタートメニューから再度 MSYS2 MSYS を実行し、pacman -Suu を実行します。」という記述がvim-jpにあったので、それに従いました。
pacman -Suu
これ以降の作業は、msys2上で行います。
必要な道具を取得
pacman -S git pacman -S base-devel pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-toolchain を実行すると、13の候補が表示されます。
「Enter a selection (default=all):」というプロンプトが表示されるので、Enterを押下します。
Vimのソースを取得
git clone https://github.com/vim/vim.git
(git clone実行後にソースが更新された場合は git pull)
ビルド
srcフォルダに移動します。
cd vim/src
mingw32-makeを実行します。
mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313
(Python3拡張を使わない場合、「PYTHON3=」で始まる部分は不要です)
make時に指定する項目について
Make_ming.makファイルを読むと次の記述があります。
This file contains MinGW specific settings. Common settings are contained in Make_cyg_ming.mak.
そこで、Make_cyg_ming.makを見てみました。このファイルの中に
DEBUG=no GUI=yes ICONV=yes IME=yes
という記述があったので、これらの項目を省いて次のようにしても同じ結果になると思います。
mingw32-make -f Make_ming.mak MBYTE=yes PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313
とはいえ、Make_cyg_ming.makの中身が変わることもあるでしょうから、ビルド時にこのファイルの中身をチェックした方が良さそうです。
libgcc_s_seh-1.dll と libstdc++-6.dllが無い?
出力されたgvim.exeを実行したところ、「libgcc_s_seh-1.dllが見つかりません」「libstdc++-6.dllが見つかりません」と表示されました。
パスが通っていないのかなと思ったので、msys2でfindコマンドを実行しました。
cd /c/msys64 find . -name "libgcc_s_seh-1.dll" find . -name "libstdc++-6.dll"
どちらのdllも「msys64\mingw64\bin」にあったので、環境変数Pathに以下の記述を加えました。
C:\msys64\mingw64\bin
sodiumを有効化
msys2でlibsodiumをインストールしてからmakeしました。
pacman -S mingw-w64-x86_64-libsodium mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no SODIUM=yes PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313
自分の場合
mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no OLE=yes SODIUM=yes PYTHON3=C:/[中略]/Python/Python313 DYNAMIC_PYTHON3=yes PYTHON3_VER=313