« 日常メモ | メイン | 週明け »

IMAP c-client library

導入する必要があったので、導入メモ。
ちなみにSolaris10 for intel環境です。

% wget ftp://ftp.cac.washington.edu/imap/imap.tar.Z
% uncompress imap.tar.Z
% cd imap-2007b
% env CC=gcc297 make sol SSLTYPE=none

上記のコマンドを実行した時に「are you sure?」のような事を訊かれますが、ここは「y」で。
その先でucbccが無いと言われて処理が中断しますが、この処理をしないと次の作業が行なえない(c-clientディレクトリが作成されない)ので、それはそれで無視します。

% vi c-client/Makefile

Makefileの「sol」のところにある「ucbcc」という箇所を「gcc」に変更します。
その前の「BASECFLAGS="-g -O2"」の箇所を「BASECFLAGS="-fPIC -O3"」に変更します。

% env CC=gcc297 make sol SSLTYPE=none
% mkdir include lib
% cd c-client
% cp *.h ../include
% cp *.c ../lib
% cp c-client.a ../lib/libc-client.a

「make install」は行ないません。やりたければ「/usr/local/lib」と「/usr/local/include」に必要なファイルをコピーして所有者をrootに変更すれば良いでしょう。
後は、PHPのコンパイルを行なう際、configureに「--with-imap=../imap-2007b」を食わせれば淡々とコンパイルが行なわれます。逆に、上記の通りの作業を行なわないと、c-clientのコンパイル自体が出来ないか、多量のsymbol referencing errorが出てPHPのコンパイルがfailしますので要注意です。

海外サイトで情報を収集したところ、旧いgccでないと正常にコンパイル出来ないという情報があったのでmakeコマンドに「CC=gcc297」を加えています。また、デフォルトではSSL対応でc-clientがコンパイルされる(その場合、PHPで--with-imap-sslが必要となる)ので、「SSLTYPE=none」を加えています。
あと、symbol referencing error対策で、Makefileに「-fPIC」を加えています。-fPICを加えると、共有ライブラリに対する要求事項である「位置独立コード (position independent code)」を生成することが出来るそうです。ちなみに「-fPIC」と「-fpic」は挙動が異なり、動作させる事を前提とするならば「-fPIC」を使うほうが確実です(一方、環境の制限はあるがプログラムサイズが小さくなり挙動が軽くなるのは-fpicです)。

日本語サイトでこの辺りの解説を行なっているところが無かったので取り敢えず掲載しておきます。とは言え、c-client自体を使う事は殆どありませんが。
※SugerCRMでメール機能を使用する際にはc-clientを入れないとダメなようです

About

2008年09月24日 00:34に投稿されたエントリーのページです。

ひとつ前の投稿は「日常メモ」です。

次の投稿は「週明け」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.37