fedora17 で +lua/dyn なvimをビルドする

[2013/04/16 追記あり]
fedora17は64bit版です。

vimのソース取得

Vim from Mercurial : vim online を参考に引っ張って来ます。
私は ~/okome/vim に取得しました。

lua関連のパッケージのインストール

$ sudo yum install lua lua-devel

luaは既にインストールされているかも。

static linkさせたい場合は lua-static もインストールします。

$ sudo yum install lua-static

Vimのconfigure

毎回configureのオプションを指定するのは面倒くさいので以下のようなファイル(copt_lua.txt)を作成しときます。
luaに関係するのは最後の --enable-luainterp=dynamic ですね。dynamicをyesにするとstatic linkになります。

$ cd ~/okome
$ cat copt_lua.txt
--enable-multibyte --with-gnome --with-features=huge --enable-fail-if-missing --enable-luainterp=dynamic
$ cd vim
$ ./configure `cat ../copt_lua.txt`

エラーが出たらエラーメッセージに従ってください。( rm src/auto/config.cache する等 )

$ make

動作確認

$ src/vim

:ver の表示に +lua/dyn が含まれていることを確認してください。

luaHello world出力。

:lua print("Hello world.")
E370: Could not load library liblua.so.5.1
Lua library cannot be loaded.

およ!ライブラリがロード出来ないと怒られました。

[2013/04/16 追記]
Vim 7.3.897で正しいライブラリ名(liblua-5.1.so)を参照するようになったので以降の記事は古い情報です。

ライブラリの確認

$ cd /usr/lib64
$ ls -l liblua*
-rwxr-xr-x. 1 root root 186176  114  2012 liblua-5.1.so*
lrwxrwxrwx. 1 root root     13  49 23:18 liblua.so -> liblua-5.1.so*

あれ?微妙にライブラリ名が違う。。
Vimは liblua.so.5.1 をロードしようとしてるけど
実在するのは liblua-5.1.so ですねぇ。Vimのconfigure時に指定出来るのかな?
ええぃ!自分でシンボリックリンク作っちゃいましょう。

$ sudo ln -s liblua-5.1.so liblua.so.5.1
$ ls -l liblua*
-rwxr-xr-x. 1 root root 186176  114  2012 liblua-5.1.so*
lrwxrwxrwx. 1 root root     13  49 23:18 liblua.so -> liblua-5.1.so*
lrwxrwxrwx. 1 root root     13  410 00:47 liblua.so.5.1 -> liblua-5.1.so*

これでライブラリのロードは大丈夫。

動作確認 (2)

$ cd ~/okome/vim
$ src/vim
:lua print("Hello world.")

Vimコマンドラインのところに Hello world. と表示されたら成功です。
後は楽しくluaりましょう。