外部共有ライブラリに依存する拡張機能を開発したいと考えています。現在の問題は、この共有ライブラリを拡張機能にリンクできないことです。
私の開発環境は Fedora Linux x64 + PHP 5.4 です。この外部共有ライブラリは独自のもので、ヘッダー (.h) と .so ファイル (32 ビットおよび 64 ビット用) しかありません。
プロジェクトの現在の config.m4 ファイルは次のとおりです。
PHP_ARG_WITH(projectname,
[Whether to enable ProjectName support],
[ --with-projectname enable ProjectName support])
if test "$PHP_PROJECTNAME" != "no"; then
PHP_ADD_LIBRARY_WITH_PATH(externallib, lib64, PROJECTNAME_SHARED_LIBADD)
AC_DEFINE(HAVE_PROJECTNAME, 1, [Whether you have ProjectName])
PHP_NEW_EXTENSION(projectname, projectname.c, $ext_shared)
fi
ここでの問題は、生成されたメイクファイルを実行するたびに./configure --with-projectname
ライブラリへの参照がなく、コンパイルされた .so ファイルが (明らかに) 失敗することです。
アーキテクチャに応じて適切な lib ディレクトリを決定する方法があれば、それも役に立ちます。