MSYS2でVim8をコンパイル(Windows)
前提
2017/12/28時点の情報です! なるべく更新しますが、今後もこの通りとは限りません。
+perl、+python、+python3、+lua、+rubyが有効なVimをコンパイルします。
基本的にはvim-jpの記事を参考にしますが、Perl、Python2、Python3、RubyはChocolateyでインストールします。 LuaもChocolateyでインストールしますが、ソース(lua.hなど)がダウンロードされないので、 ソースだけ別途取得します。
chocolateyでのインストール
choco install -y StrawberryPerl --version 5.26.1.1 choco install -y python2 --version 2.7.9 choco install -y python3 --version 3.6.4 choco install -y ruby --version 2.3.3 choco install -y lua53 --version 5.3.3
それぞれ、以下の場所にインストールされる。
- python2:
C:\tools\python2
- python3:
C:\Python36
- Ruby:
C:\tools\ruby23
- Perl:
C:\Strawberry\perl
- Lua:
C:\ProgramData\chocolatey\lib\lua53\tools
MSYS2の準備
pacman -Suuy # ここで一度minttyを閉じて、再度開く pacman -Suu pacman -S git mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain pacman -S python3
作業用のディレクトリ作成、ソースの取得
mkdir -p ~/src/vim cd ~/src/vim # Lua wget http://www.lua.org/ftp/lua-5.3.3.tar.gz tar xzvf lua-5.3.3.tar.gz # Vim git clone https://github.com/vim/vim.git
ビルド
cd ./vim/src rm -rf ./build mkdir -p ./build/vimfiles # メッセージファイルを生成 python3 C:/Python36/tools/i18n/msgfmt.py ./po/ja.po # ビルド(CUI) mingw32-make -f Make_ming.mak \ GUI=no \ ARCH=x86-64 \ IME=yes \ MBYTE=yes \ ICONV=yes \ FEAT_TERMGUICOLORS=yes \ clean mingw32-make -f Make_ming.mak \ ARCH=x86-64 \ IME=yes \ MBYTE=yes \ ICONV=yes \ FEAT_TERMGUICOLORS=yes \ PERL=C:/Strawberry/perl DYNAMIC_PERL=yes PERL_VER=526 \ PYTHON=C:/tools/python2 DYNAMIC_PYTHON=yes PYTHON_VER=27 \ PYTHON3=C:/python36 DYNAMIC_PYTHON3=yes PYTHON3_VER=36 \ RUBY=C:/tools/ruby23 DYNAMIC_RUBY=yes RUBY_VER=23 RUBY_API_VER_LONG=2.3.0 \ LUA=~/src/vim/lua-5.3.3/src DYNAMIC_LUA=yes LUA_VER=53 \ GUI=no cp vim.exe ./build/ # ビルド(GUI) mingw32-make -f Make_ming.mak \ GUI=yes \ ARCH=x86-64 \ IME=yes \ MBYTE=yes \ ICONV=yes \ FEAT_TERMGUICOLORS=yes \ clean mingw32-make -f Make_ming.mak \ ARCH=x86-64 \ IME=yes \ MBYTE=yes \ ICONV=yes \ FEAT_TERMGUICOLORS=yes \ PERL=C:/Strawberry/perl DYNAMIC_PERL=yes PERL_VER=526 \ PYTHON=C:/tools/python2 DYNAMIC_PYTHON=yes PYTHON_VER=27 \ PYTHON3=C:/python36 DYNAMIC_PYTHON3=yes PYTHON3_VER=36 \ RUBY=C:/tools/ruby23 DYNAMIC_RUBY=yes RUBY_VER=23 RUBY_API_VER_LONG=2.3.0 \ LUA=~/src/vim/lua-5.3.3/src DYNAMIC_LUA=yes LUA_VER=53 \ GUI=yes \ STATIC_STDCPLUS=yes \ DIRECTX=yes cp gvim.exe ./build/ cp vimrun.exe ./build/ # パッキング cp C:/msys64/mingw64/bin/libiconv-2.dll ./build/ cp C:/msys64/mingw64/bin/libintl-8.dll ./build/ cp C:/msys64/mingw64/bin/libwinpthread-1.dll ./build/ cp C:/Strawberry/perl/bin/perl526.dll ./build/ cp C:/tools/ruby23/bin/x64-msvcrt-ruby230.dll ./build/ cp C:/Windows/System32/python27.dll ./build/ cp C:/Python36/python36.dll ./build/ cp C:/ProgramData/chocolatey/lib/lua53/tools/lua53.dll ./build/ cp -r ../runtime ./build/vim80 mkdir -p ./build/vim80/lang/ja/LC_MESSAGES cp ./po/ja.mo ./build/vim80/lang/ja/LC_MESSAGES/vim.mo # 実行ファイル置き場に移動 mkdir ~/bin/vim/ cp -r ./build/* ~/bin/vim/