So-net無料ブログ作成

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)

コメント(1)  トラックバック(0) 

コメント 1

mark

参考にさせてもらいました.おかげで上手くコンパイルできました.
ただ,上記のライブラリ以外にmsys-libopensslが必要でした.
by mark (2012-09-30 15:55) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

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

×

この広告は1年以上新しい記事の更新がないブログに表示されております。