LoginSignup
9
10

More than 5 years have passed since last update.

vimをソースからビルド

Last updated at Posted at 2014-08-16

将来的にはluaとrubyでプラグインをかけたらいいなと思うのでlua,rubyを使えるvimを作成することが今回の目的です。途中でいろいろ手こずったので作業メモとして残して置きます。

ソースの入手

vim-jpが非公式ではあるがgithubに最新ソースをあげているようなのでそこからソースを入手する。

sh
cd 作業ディレクトリ
git clone https://github.com/vim-jp/vim.git

configure

利用可能なオプションの調べ方は./configure --helpで確認できる。
また現在利用中のvimのオプションは、vim --versionで確認できる。

./configure --with-features=huge  --enable-luainterp  --enable-perlinterp  --enable-pythoninterp  --enable-rubyinterp --enable-fail-if-missin
make

設定を確認する

src以下にvimのバイナリができるので設定したオプションが有効になっているか確認する。
今回は+lua, +rubyとなっていればOK

./src/vim --version

インストール

make install

困ったこと

perlインタプリタを有効にするオプションをつけるとエラー

下記のようなエラーが出た。

auto/if_perl.c
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -prototypes -typemap \
/usr/share/perl5/ExtUtils/typemap if_perl.xs >> auto/if_perl.c
Can't open perl script "/usr/share/perl5/ExtUtils/xsubpp": そのようなファイルやディレクトリはありません

ググったら、perl-ExtUtils-Embedをインストールすれば良いみたいなので、下記コマンドでインストールする

perl-ExtUtils-Embedをインストール

yum install perl-ExtUtils-Embed

このあと再ビルドしたがビルドエラーはとれず1時間ぐらい悩んだ。
どうもsrc/Makefileを読むと「/usr/share/perl5/ExtUtils/xsubpp」にあることを期待しているようですが、Fedora20のyumコマンドインストールされたのは、「/usr/share/perl5/vendor_perl/ExtUtils」のようでした。とりあえず暫定で「src/Makefile」を下記のように直せばビルドエラーは解消された。

diff --git a/src/Makefile b/src/Makefile
index 772b15c..cd28553 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2477,7 +2477,7 @@ lintinstall:

 auto/if_perl.c: if_perl.xs
        $(PERL) -e 'unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$$_ $$_\n" }}' > $@
-       $(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
+       $(PERL) $(PERLLIB)/vendor_perl/ExtUtils/xsubpp -prototypes -typemap \
            $(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@

 auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in

2014/08/26に追記

最新版にアップデートして再ビルドしたところビルドが通ることを確認した。
実際どうやって対応しているのか見ると下記ログが見つかった。
src/Makefileへのパスの渡し方がいまいち分からないのでその辺を時間があるときに勉強しようと思う。

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10