2013-02-03 Sun

[別の年の同じ日: 2004 2006 2007 2008 2010 2015 2017

spdylay を Solaris 上でビルドしようとしてみた話 はてぶ

「そろそろ SPDY も視野に入れておかないと」という感じで、
とりあえず、Solaris 11.1 上で spdylay をビルドしようとしたところ、
./configure で zlib がないと怒られた。

bash-4.1$ pkg list -H zlib
library/zlib                                      1.2.3-0.175.1.0.0.24.0     i--


で、最新(1.2.7)ではないけど、ちゃんとインストールされている。

configure を読むと、pkg-config を使って zlib の存在確認をしている。

zlib のパッケージの中身を確認すると、以下のように zlib.so がない。

bash-4.1$ pkg contents zlib
PATH
lib
lib/amd64
lib/amd64/libz.so
lib/amd64/libz.so.1
lib/amd64/llib-lz.ln
lib/libz.so
lib/libz.so.1
lib/llib-lz.ln
usr
usr/include
usr/include/zconf.h
usr/include/zlib.h
usr/lib
usr/lib/amd64
usr/lib/amd64/libz.so
usr/lib/amd64/libz.so.1
usr/lib/amd64/llib-lz.ln
usr/lib/libz.so
usr/lib/libz.so.1
usr/lib/llib-lz
usr/lib/llib-lz.ln
usr/share
usr/share/man
usr/share/man/man3
usr/share/man/man3/libz.3
usr/share/man/man3/zlib.3


zlib.pc がないので、

- /usr/lib/pkgconfig/zlib.pc
- /usr/lib/amd64/pkgconfig/zlib.pc

をそれぞれ以下のような内容で作成する。

bash-4.1$ cat /usr/lib/pkgconfig/zlib.pc
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
sharedlibdir=${libdir}
includedir=${prefix}/include

Name: zlib
Description: zlib compression library
Version: 1.2.3

Requires:
Libs: -L${libdir} -L${sharedlibdir} -lz
Cflags: -I${includedir}


bash-4.1$ cat /usr/lib/amd64/pkgconfig/zlib.pc
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib/amd64
sharedlibdir=${libdir}
includedir=${prefix}/include

Name: zlib
Description: zlib compression library
Version: 1.2.3

Requires:
Libs: -L${libdir} -L${sharedlibdir} -lz
Cflags: -I${includedir}


これで ./configure を実行すると、zlib でひっかからず、
ライブラリは make できるようになる。

ライブラリ以外、src の下の spdycat や spdyd をビルドするには、

- libxml
- openssl

などのバージョンを上げる必要がある。

この辺りを変更するのは面倒臭そうなので、ここは Linux に逃げることにしておく。