Vim8.0をBash on Ubuntu On Windowsでビルドした

## 概要
なんとなくBash on Ubuntu on Windowsを入れて、とりあえずVimを自前ビルドしたのでその作業メモです。
luaとか有効にしてます。（オプションは後述）
（Bash on Ubuntu on Windowsの入れ方とかは他記事におまかせするとします。）

## 環境
- Windows 10 Pro 64bit 1607

## 必要なパッケージのインストール
適当に指定しているので、もしかしたら不要なものも含まれているかもしれませんが...
ざくっと以下を実行。

```console
$ sudo apt-get install git cpp gcc autoconf automake make lua5.2 luajit liblua5.2-0 liblua5.2-dev libperl5.18 libperl-dev python-dev python3-dev ruby ruby-dev tcl tcl-dev
パッケージリストを読み込んでいます... 完了%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了%
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libfreetype6 os-prober
これを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
  autotools-dev binutils build-essential cpp-4.8 dpkg-dev fakeroot g++ g++-4.8
  gcc-4.8 git-man libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libasan0 libatomic1 libc-dev-bin libc6-dev
  libcloog-isl4 libdpkg-perl liberror-perl libexpat1-dev libfakeroot
  libfile-fcntllock-perl libgcc-4.8-dev libgmp10 libgomp1 libisl10 libitm1
  libltdl-dev libltdl7 libluajit-5.1-common libmpc3 libmpfr4 libpython-dev
  libpython2.7-dev libpython3-dev libpython3.4 libpython3.4-dev libquadmath0
  libreadline-dev libreadline6-dev libruby1.9.1 libstdc++-4.8-dev libtcl8.6
  libtinfo-dev libtool libtsan0 linux-libc-dev m4 manpages-dev pkg-config
  python2.7-dev python3.4-dev ruby1.9.1 ruby1.9.1-dev tcl8.6 tcl8.6-dev
  zlib1g-dev
提案パッケージ:
  autoconf2.13 autoconf-archive gnu-standards autoconf-doc gettext
  binutils-doc cpp-doc gcc-4.8-locales debian-keyring g++-multilib
  g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg gcc-multilib automake1.9
  flex bison gdb gcc-doc gcc-4.8-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg
  libatomic1-dbg libasan0-dbg libtsan0-dbg libquadmath0-dbg git-daemon-run
  git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch
  git-bzr git-cvs git-mediawiki git-svn glibc-doc libtool-doc
  libstdc++-4.8-doc automaken gfortran fortran95-compiler gcj-jdk make-doc ri
  ruby1.9.1-examples ri1.9.1 graphviz ruby-switch tcl-doc tcl-tclreadline
  tcl8.6-doc
以下のパッケージが新たにインストールされます:
  autoconf automake autotools-dev binutils build-essential cpp cpp-4.8
  dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8 git git-man libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan0 libatomic1
  libc-dev-bin libc6-dev libcloog-isl4 libdpkg-perl liberror-perl
  libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-4.8-dev libgmp10
  libgomp1 libisl10 libitm1 libltdl-dev libltdl7 liblua5.2-0 liblua5.2-dev
  libluajit-5.1-common libmpc3 libmpfr4 libperl-dev libperl5.18 libpython-dev
  libpython2.7-dev libpython3-dev libpython3.4 libpython3.4-dev libquadmath0
  libreadline-dev libreadline6-dev libruby1.9.1 libstdc++-4.8-dev libtcl8.6
  libtinfo-dev libtool libtsan0 linux-libc-dev lua5.2 luajit m4 make
  manpages-dev pkg-config python-dev python2.7-dev python3-dev python3.4-dev
  ruby ruby-dev ruby1.9.1 ruby1.9.1-dev tcl tcl-dev tcl8.6 tcl8.6-dev
  zlib1g-dev
アップグレード: 0 個、新規インストール: 76 個、削除: 0 個、保留: 0 個。
95.0 MB のアーカイブを取得する必要があります。
この操作後に追加で 256 MB のディスク容量が消費されます。
続行しますか? [Y/n] y

 (ログは省略)
```

## githubからソースをclone
特に解説することもないですね。

```console
$ cd /usr/local/src
$ sudo chmod a+w .
$ git clone https://github.com/vim/vim.git
```

## configure && make && make install
いつも使ってるビルドオプションをそのまま指定しました。
`--enable-fail-if-missing`を指定していると足りないパッケージがあるとエラーになるので便利です。（つい最近知りました...）

```console
$ cd vim
$ ./configure --with-features=huge \
              --disable-darwin \
              --disable-selinux \
              --enable-fail-if-missing \
              --enable-luainterp \
              --enable-perlinterp=dynamic \
              --enable-pythoninterp \
              --enable-python3interp \
              --enable-tclinterp \
              --enable-rubyinterp \
              --enable-cscope \
              --enable-multibyte \
              --enable-xim \
              --enable-fontset \
              --with-compiledby=xxxkurosukexxx \
              --enable-gui=no \
              --prefix=/usr/local
 (ログは省略)
$ make
 (ログは省略)
$ sudo make install
 (ログは省略)
```

無事ビルドできました :clap: 

## （参考）デフォルトで入っていたVim
```console
$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan  2 2014 19:39:32)
適用済パッチ: 1-52
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
-balloon_eval    +float           +mouse_urxvt     -tag_any_white
-browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
-clientserver    -hangul_input    +netbeans_intg   +title
-clipboard       +iconv           +path_extra      -toolbar
+cmdline_compl   +insert_expand   -perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python          +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            -ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      -sniff           -xsmp
+eval            +mouse_dec       +startuptime     -xterm_clipboard
+ex_extra        +mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    -xpm
      システム vimrc: "$VIM/vimrc"
        ユーザ vimrc: "$HOME/.vimrc"
     第2ユーザ vimrc: "~/.vim/vimrc"
         ユーザ exrc: "$HOME/.exrc"
       省略時の $VIM: "/usr/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl    -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
```


## （参考）今回ビルドしたVim
```console
$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 30 2016 14:48:00)
Included patches: 1-19
Compiled by xxxkurosukexxx
Huge version without GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     +tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminfo
++builtin_terms  +fork()          +multi_lang      +termresponse
+byte_offset     -gettext         -mzscheme        +textobjects
+channel         -hangul_input    +netbeans_intg   +timers
+cindent         +iconv           +num64           +title
-clientserver    +insert_expand   +packages        -toolbar
-clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        +perl/dyn        +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       +python/dyn      +vreplace
+cscope          +lispindent      +python3/dyn     +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con      +lua             +rightleft       +writebackup
+diff            +menu            +ruby            -X11
+digraphs        +mksession       +scrollbind      -xfontset
-dnd             +modify_fname    +signs           -xim
-ebcdic          +mouse           +smartindent     -xpm
+emacs_tags      -mouseshape      +startuptime     -xsmp
+eval            +mouse_dec       +statusline      -xterm_clipboard
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax
+farsi           +mouse_netterm   +tag_binary
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -L/build/buildd/ruby1.9.1-1.9.3.484/debian/lib -rdynamic -Wl,-export-dynamic -Wl,-E   -L/usr/local/lib -Wl,--as-needed -o vim        -lm -ltinfo -lnsl    -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector -L/usr/local/lib  -L/usr/lib/perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt   -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm  -L/usr/lib
```


こちらからは以上ですー。
良きVimライフを！ :smile: