2012年5月12日土曜日

すでにmsys + MinGWが入ってる環境でmsysGitをつかいたい場合の覚書き


タイトル通り。
msysGitはインストーラーだとmsysとMinGWがセットでついてくるのが気に入らなかったので。
新規の人は最初からmsysGit入れればいいですがすでにmsys+MinGWで環境作ってた人は結構困ります。

参考

$ mingw-get mingw32-libintl mingw32-libiconv mingw32-libz msys-libopenssl
その他足りないライブラリは自分で適当に。

私の場合msys-opensslがあるのは知っていたのですがopensslのライブラリの方はmingw-getじゃ入れられないと思って自前ビルドして、undefined reference toエラーが出てハマりました。
素直にmsys-libopensslを入れとけば大丈夫です

http://mingw.cvs.sourceforge.net/viewvc/mingw/catgets 
からcatgetsを持ってきて、configure && make && make install

その後に gcc -c repl/langinfo.c -I/usr/local/include としてlanginfo.oをつくりましょう。

https://github.com/msysgit/git
GithubからmsysGitのソースをもってくる
先ほど作ったlanginfo.oはmsysGitを解凍したフォルダに持っていく

ここから重要

make prefix=/mingw 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"
としておけばmakeが通るはず

installはINSTALLとgitweb/INSTALLをそれぞれINSTALL_、gitweb/INSTALL_とリネームしてから
make prefix=/mingw 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

これでgitコマンドが使えます。