SSブログ

mingw+gitコンパイル

http://www.kantenna.com/info/2012/01/mingwminttygit.php を見てなんとなくmingwでgitコンパイルに挑戦してみた。
tcltkを入れていないので、git-guiは無視。

必要なライブラリをインストールする。(ほかにも必要かもしれないけど忘れた)
$ mingw-get mingw32-libintl mingw32-libiconv mingw32-libz


http://mingw.cvs.sourceforge.net/viewvc/mingw/catgetsからcatgetsのソースコードを取得&コンパイル&インストールして、langinfo.oを作っておく。
$ cd catgets
$ configure; make ; make install
$ gcc -c repl/langinfo.c -I/usr/local/include


https://github.com/msysgit/git からgitのソースコードを取得、上記で作ったlanginfo.oと一緒に下記コマンドでビルドする。gitのフォルダ名は適当に読み替えること。prefixは適当に。(多分もっと簡単な方法があるのだろう)
cd msysgit-git-v1.7.10-rc0-5759-g87c2b03/msysgit-git-87c2b03
$ mv ~/catgets/langinfo.o .
$ make prefix=$HOME/Git NO_TCLTK=1 SNPRINTF_RETURNS_BOGUS=1 CFLAGS="-I/usr/include -I/usr/local/include" LIBS="libgit.a xdiff/lib.a langinfo.o -L/mingw/lib -L/usr/lib -L/usr/local/lib -lcatgets -lintl -liconv -lz -lws2_32"


インストールは下記のようにする。INSTALLファイルの名前を変えておくこと。
$ mv INSTALL INSTALL_
$ mv gitweb/INSTALL gitweb/INSTALL_
$ make prefix=$HOME/Git NO_TCLTK=1 SNPRINTF_RETURNS_BOGUS=1 CFLAGS="-I/usr/include -I/usr/local/include" LIBS="libgit.a xdiff/lib.a langinfo.o -L/mingw/lib -L/usr/lib -L/usr/local/lib -lcatgets -lintl -liconv -lz -lws2_32" install


問題点
commitしようとすると以下のエラーが出る。当分は-mを使うことにする…
$ EDITOR=vim git commit
fatal: BUG: your vsnprintf is broken (returned -1)

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。