MinGWを使ってのビルド方法
ビルド手順はVimのバージョンによって一部変更されていることがあります。公式のビルド手順は、ソースファイル内の src/INSTALLpc.txt および、MinGW用MakefileやCygwin/MinGW共通Makefile内のコメントを参照してください。
-
msys2 のインストール
以前は Windows 上の gcc コンパイラをインストールする為に MinGW | Minimalist GNU for Windows をダウンロードしましたが、最近は msys2 を使うのが一般的です。以下は msys2 がインストール済みの前提で記述しています。
-
GitやGCCのインストール
スタートメニューから
MSYS2 MSYS
を実行し、以下のコマンドを実行してシステムの更新を行います。pacman -Suuy
MSYS2を終了して再実行するように言われた場合は、それに従ってminttyのウィンドウを閉じ、スタートメニューから再度
MSYS2 MSYS
を実行し、pacman -Suu
を実行します。 システムの更新が終わったら、以下のコマンドを実行してGitやGCCなど必要なパッケージをインストールします。pacman -S git mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
pacmanのwrapperコマンドであるpacboyを使えば、もう少し簡単に、以下のコマンドでインストールできます。
pacboy -S git toolchain:m
pacboyの使い方は、
pacboy help
を実行すると表示されます。パッケージ名の後に:x
で64bit用(mingw-w64-x86_64-
)、:i
で32bit用(mingw-w64-i686-
)、:m
で64/32bit用両方がインストールされます。 -
ソース取得
ビルドするターゲットに合わせて、スタートメニューから
MSYS2 MinGW 64-bit
またはMSYS2 MinGW 32-bit
のいずれかを実行し、そこから以下を実行します。git clone https://github.com/vim/vim.git
git clone
を実行した後にソースが更新された場合は、以下のコマンドで最新のソースを取得できます。git pull
特定のバージョンを指定して取得する場合は、以下のコマンドを実行します。
git checkout v7.4.393
-
コンパイル
vim/src
フォルダに移動し以下のコマンドを実行します。mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes \ ICONV=yes DEBUG=no
もしPerl拡張やPython2/3拡張、Ruby拡張、Lua拡張を使う場合は以下の様に指定します。
mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes \ PERL=c:/strawberry/perl DYNAMIC_PERL=yes PERL_VER=526 \ PYTHON=c:/python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 \ PYTHON3=c:/python36 DYNAMIC_PYTHON3=yes PYTHON3_VER=36 \ RUBY=c:/Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0 \ LUA=c:/lua53 DYNAMIC_LUA=yes LUA_VER=53 \ CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no
msys2 付属の perl/python/ruby/lua を使う場合は以下の様に指定します。
mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes \ PERL=c:/msys64/mingw64 DYNAMIC_PERL=yes PERL_VER=522 \ PERLEXE=c:/msys64/mingw64/bin/perl.exe \ PERLLIB=c:/msys64/mingw64/lib/perl5/core_perl \ PYTHON=c:/msys64/mingw64 DYNAMIC_PYTHON=yes PYTHON_VER=27 \ PYTHON_HOME=c:/msys64/mingw64 \ PYTHONINC=-Ic:/msys64/mingw64/include/python2.7 \ DYNAMIC_PYTHON_DLL=libpython2.7.dll \ PYTHON3=c:/msys64/mingw64 DYNAMIC_PYTHON3=yes PYTHON3_VER=36 \ PYTHON3_HOME=c:/msys64/mingw64/ \ PYTHON3INC=-Ic:/msys64/mingw64/include/python3.6m \ DYNAMIC_PYTHON3_DLL=libpython3.6m.dll \ RUBY=c:/msys64/mingw64 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0 \ LUA=c:/msys64/mingw64 DYNAMIC_LUA=yes LUA_VER=53 \ CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no
注意1) 複数行に跨るのでシェルスクリプトに記載して実行して下さい。
注意2) Vimのバージョンによっては、
ARCH=x86-64
(64bit) またはARCH=i686
(32bit) を指定しなければならない場合があります。注意3) ターゲットが32bitの場合は、
c:/msys64/mingw64
をc:/msys64/mingw32
に置き換えてください。Vim 7.4.393以降で使えるようになったDirectWriteを有効にするには、
DIRECTX=yes
を指定する必要があります。 なお、DirectWriteを有効にすると、デフォルトでは実行時に libstdc++-6.dll, libgcc_s_sjlj-1.dll 等が必要となりますが、STATIC_STDCPLUS=yes
を指定することでこれらのライブラリをスタティックリンクすることが出来ます。(VimやGCCのバージョンによって出来ないこともあり。)
もどる