ソース・パッチをリモートから直接展開・適用する

少し以前から Lisp を学びたいという衝動が高まってきまして、Vim に MzScheme インターフェースを追加することにしました (emacs への乗換えも一時検討したんですが、あっさり断念しました)。

ソースを持っていなかったため、一からパッケージを取ってくるところから始めました。以下、備忘録代わりに手順を記しておきます。

なお、Cygwin+MingwWindows 用にビルドする、というのがシナリオです。


まず、適当なディレクトリで

curl -s ftp://ftp.vim.org/pub/vim/unix/vim-7.0.tar.bz2 | tar xvj
curl -s ftp://ftp.vim.org/pub/vim/extra/vim-7.0-extra.tar.gz | tar xvz

としてダウンロードしながら展開します。

(svn を使えば一発なんですが、今回は敢えて古典的な方法を取っております)

これが済んだら

cd ./vim70

で、展開されたディレクトリに移動。

次はパッチです。大量にありまして、100 個単位でパックされています。これもダウンロードと展開を一度にやります:

curl -s ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.001-100.gz | gzip -d | patch -p0

101 個目からは 1 個ずつになります。

for (( i = 101; i < 165; i++ )); do
  curl -s "ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.$i" | patch -p0
  sleep 1
done

無事に出来たらコンパイルなんですが、その前に Makefile を編集しなければいけません。

src/Make_ming.mak を開き、

/mzscheme

で編集箇所を検索。"#MZSCHEME=..." の行のコメントを外し、パスを適切に書き換えます。

"MZSCHEME_VER" の値も、入手した MzScheme のバージョンに合わせて書き換えます (例: MZSCHEME_VER=360_000)。

もう一つ、忘れがちなんですが、Windows 用にビルドするということで gcc のオプションに "-mno-cygwin" を付け加えなければなりません。

/cflags

で探した行に適当に追加します。

これでようやく準備完了です。

それでは

make -f Make_ming.mak gvim.exe && mv gvim.exe ~/bin/ && echo "Happy Vim+Scheming!!"