私は autoconf を使用する最初のプロジェクトを書いており、それを独学で教えています。ほとんどの場合、物事は非常にうまくいっています。最後に重要なハードルが 1 つあります。システムごとに名前が異なる可能性があるライブラリ ファイルとヘッダー ファイルを見つけるのに苦労しています。
たとえば、Mozilla の SpiderMonkey でコンパイルする必要があります。ソースからコンパイルすると、SpiderMonkey は libjs.so になります。ただし、私の Linux バリアントでは、SpiderMonkey は libmozjs.so としてインストールされます。これは同じライブラリですが、名前が異なるだけで、リンカー フラグが異なります。
ライブラリの名前を検出する適切な方法はありますか? デフォルトを「js」にして、それをオーバーライドする構成オプションを指定するだけですか?
ヘッダーファイルでも同じ状況があります。SpiderMonkey のヘッダー ファイルは、私のオペレーティング システムの /usr/include/mozjs/ にインストールされています。他のシステムでは、/usr/include/js/ または単に /usr/include/ になると確信しています。適切なヘッダー ファイルの場所を見つけるにはどうすればよいですか? バニラの「検索」を行うのは遅く、ファイルの間違ったコピーを見つける可能性があるため、躊躇していました(たとえば、 /usr/include/ ではなくユーザーのホームディレクトリでファイルを検索します)。