なんかビルドで弾かれると思ったら、
- /usr/lib/pkgconfig/libxml-2.0.pc
- /usr/lib/pkgconfig/libxslt.pc
が無い。ヘッダとライブラリはある。
pc ファイルを手書きしようと思ったけどバージョンが不明だったので Apple Open Source から一つ前の 10.9.2 用のソースを持ってきた。
xcodebuild コマンドだと pc ファイルをビルドしてくれない(プロジェクト編集すればいけるのか?)。ソースディレクトリに入って autogen.sh を実行する。autoconf や libtoolize など各種 GNU Autotools が必要になる。autogen.sh はコマンド直書きで、glibtoolize ではなく libtoolize での呼び出しなので、無ければ g 付きのものにリンクを貼っておくか、スクリプトを弄る。autogen.sh の後に configure が自動で行われるので引数を与えておいて make はしない。
curl -O http://opensource.apple.com/tarballs/libxml2/libxml2-26.tar.gz tar xf libxml2-26.tar.gz cd libxml2-26/libxml2 PATH=/opt/local/libexec/autotools:`getconf PATH` ./autogen.sh --prefix=/usr
非システム標準なのでとりあえず /usr/local/lib/sys_pkgconfig
とか作って置いておく。
mkdir -p /usr/local/lib/sys_pkgconfig cp libxml-2.0.pc /usr/local/lib/sys_pkgconfig
libxslt も同様に。
curl -O http://opensource.apple.com/tarballs/libxslt/libxslt-13.tar.gz tar xf libxslt-13.tar.gz cd libxslt-13/libxslt PATH=/opt/local/libexec/autotools:`getconf PATH` ./autogen.sh --prefix=/usr cp libxslt.pc /usr/local/lib/pkgconfig
libxml-2.0.pc
prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include modules=1 Name: libXML Version: 2.9.1 Description: libXML library version2. Requires: Libs: -L${libdir} -lxml2 Libs.private: -lpthread -lz -liconv -lm Cflags: -I${includedir}/libxml2
libxslt.pc
Cflags は -I${includedir}/libxml2
が必要になるかもしれない。
prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: libxslt Version: 1.1.28 Description: XSLT library version 2. Requires: libxml-2.0 Libs: -L${libdir} -lxslt -lxml2 Cflags: -I${includedir}
10.6.8 と 10.9.3 の差分。
--- /dev/fd/13 2014-06-17 00:00:00.000000000 +0900 +++ /dev/fd/14 2014-06-17 00:00:00.000000000 +0900 @@ -1,12 +1,9 @@ apr-1.pc apr-util-1.pc libcrypto.pc -libcurl.pc libedit.pc -libexslt.pc libiodbc.pc libpcre.pc +libpcreposix.pc libssl.pc -libxml-2.0.pc -libxslt.pc openssl.pc