ライブラリの場所を構成スクリプトに伝えるのは、ユーザーの責任です。ユーザーが利用できるオプションは多数ありますが、最も一般的なものは次のとおりです。
configure LDFLAGS=-L/p/a/t/h
この点でユーザーに対応するためにメンテナーがビルド スクリプトを変更する理由はまったくなく、何もしようとしない多くの正当な理由があります。(ユーザーとして) ライブラリが多くの場所にあることに気付いた場合は、環境または config.site で LDFLAGS を設定できます。ツールチェーンにはおそらく他のメカニズムがあります (たとえば、gcc を使用している場合は、LIBRARY_PATH を設定するだけです)。autoconf によって提供されるインフラストラクチャは、この問題に対処するためのメカニズムをすでに多数提供しており、パッケージのメンテナーは、車輪を再発明せず、非標準のインターフェースを提供する方が賢明です。
あなたがやろうとしていることをするべきではないと主張したので、それを行う方法を教えてあげましょう。AC_CHECK_LIB は検索に LDFLAGS の値を使用するため、次のことができます。
LDFLAGS="$LDFLAGS $CPLEX_LIBS" # this is a bug
-l
LDFLAGS にフラグがありますが、-l
引数は に属しているため、これは間違っていますLIBS
。また、別のライブラリ libfoo と $FOO_LIBS が別の場所を指している場合、明確にする方法はまったくありません: LDFLAGS は -L/cplex と -L/foo を取得し、ユーザーはどちらがどれかわかりませんが最初に来て、あるライブラリと他のライブラリとのリンケージを保証することはできません。つまり、CPLEX_LIBS を使用しないでください。LDFLAGS を使用するようにユーザーを教育してください。また、次のように入力すると便利です。
configure LDFLAGS='-Lpath1 -Lpath2'
入力するよりも
configure --with-cplex=path1 --with-foo=path2
後者は物事を難読化し、教育を受けていない大衆につながります。なぜ人々がビルドに --with-lib=/p/a/t/h オプションを入れるのが好きなのか理解できませんでした: それらは何の役にも立たないのです。