結論
$ make NO_GETTEXT=1
前提
- GNU CC
- GNU make
経緯
進学し環境が初期化されたので再度gitをインストールしようとしていた。管理者権限は与えられないのでパッケージマネージャ等は使えない。したがってソースからビルドする必要がある。gitのバージョンは2.9.5。
症状
$ make
...
Undefined first referenced
symbol in file
libintl_bind_textdomain_codeset libgit.a(gettext.o)
libintl_gettext libgit.a(lockfile.o)
libintl_textdomain libgit.a(gettext.o)
libintl_bindtextdomain libgit.a(gettext.o)
libintl_ngettext libgit.a(wt-status.o)
ld: fatal: symbol referencing errors
collect2: error: ld returned 1 exit status
libintl*の参照先が無いと言われる。これは多言語をサポートするためのもののよう。Solarisにはこれらの"libintl“が無い版しかないのでおこられる(たとえば、libintl_gettextではなくgettextが入っている)。
解決
多言語をサポートしなくてよい(英語さえあればよい)のであればNO_GETTEXTをdefineすればこれらを使わずにビルドしてくれる(とINSTALLに書いてあった)。
所感
学校の環境にはGNU C libraryが入っていて、それを使えばいいはずなのでLD_LIBRARIESにそこへのパスを通してみるも同じ現象が発生しうまく行かなかった。