メモ:Windows Subsystem for LinuxのUbuntu 16.04でVimをビルドする

この記事をもうちょい見返してみる。

オプションの検討

--prefix=/usr
--mandir=${prefix}/share/man
--with-modified-by=pkg-vim-maintainers@lists.alioth.debian.org
--with-compiledby=pkg-vim-maintainers@lists.alioth.debian.org

このへんのオプションは無視でよさそう。

--without-local-dir
--enable-fail-if-missing

このへんはよくわからないけど付けとくほうがトラブルが少なそう。

--enable-cscope

cscope使ったことない。必要になったらenableすればいいか。

--enable-gpm

gpmはLinux mouse daemonらしいけど、WSLってマウスっていう概念あるの? よくわからないけどとりあえず要らなそう。

--enable-selinux
--disable-smack

Smackの代わりにSELinuxを使ってるっぽいけど、SELinuxをインストールするのめんどくさいので使わない。

--with-features=huge
--enable-multibyte
--enable-acl
--without-x
--enable-gui=no

このへんはこのままでよさそう。

--enable-luainterp
--disable-mzschemeinterp
--enable-perlinterp
--enable-python3interp
--with-python-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu
--disable-pythoninterp
--enable-rubyinterp
--enable-tclinterp
--with-tclsh=/usr/bin/tclsh

LuaとPython3だけあればだいたい動くのかなーという気がする。Perlもいるかも。

ライブラリのインストール

必要なものをいれる。

sudo apt install build-essential liblua5.2-dev lua5.2 libperl-dev python3-dev

ビルド

まずはソースをcloneしてくる。

git clone https://github.com/vim/vim
cd vim
git checkout $(git tag --list | tail -1)

さっきのを踏まえてconfigureする。

./configure \
  --enable-fail-if-missing \
  --without-local-dir \
  --enable-fail-if-missing \
  --disable-gpm \
  --with-features=huge \
  --enable-multibyte \
  --enable-acl --without-x \
  --enable-gui=no \
  --enable-luainterp \
  --disable-mzschemeinterp \
  --enable-perlinterp \
  --enable-python3interp \
  --disable-pythoninterp \
  --disable-rubyinterp \
  --disable-tclinterp

で、makeしてインストール。

make
sudo make install

結果

あってるのかよくわからないけど記録のため貼っておきます。

$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan 29 2018 09:04:46)
Included patches: 1-1437
Compiled by user1@...
Huge version without GUI.  Features included (+) or not (-):
+acl               +farsi             +mouse_sgr         -tag_any_white
+arabic            +file_in_path      -mouse_sysmouse    -tcl
+autocmd           +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
-balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
-browse            +fork()            -mzscheme          +textobjects
++builtin_terms    -gettext           +netbeans_intg     +timers
+byte_offset       -hangul_input      +num64             +title
+channel           +iconv             +packages          -toolbar
+cindent           +insert_expand     +path_extra        +user_commands
-clientserver      +job               +perl              +vertsplit
-clipboard         +jumplist          +persistent_undo   +virtualedit
+cmdline_compl     +keymap            +postscript        +visual
+cmdline_hist      +lambda            +printer           +visualextra
+cmdline_info      +langmap           +profile           +viminfo
+comments          +libcall           -python            +vreplace
+conceal           +linebreak         +python3           +wildignore
+cryptv            +lispindent        +quickfix          +wildmenu
+cscope            +listcmds          +reltime           +windows
+cursorbind        +localmap          +rightleft         +writebackup
+cursorshape       +lua               -ruby              -X11
+dialog_con        +menu              +scrollbind        -xfontset
+diff              +mksession         +signs             -xim
+digraphs          +modify_fname      +smartindent       -xpm
-dnd               +mouse             +startuptime       -xsmp
-ebcdic            -mouseshape        +statusline        -xterm_clipboard
+emacs_tags        +mouse_dec         -sun_workshop      -xterm_save
+eval              -mouse_gpm         +syntax
+ex_extra          -mouse_jsbterm     +tag_binary
+extra_search      +mouse_netterm     +tag_old_static
   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   -Wl,-E   -Wl,--as-needed -o vim        -lm -ltinfo -lnsl   -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.22/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -lpython3.5m -lpthread -ldl -lutil -lm