/usr/bin ではなく特定のバイナリを使用するように ./configure を変更するにはどうすればよいですか?

/usr/bin ではなく特定のバイナリを使用するように ./configure を変更するにはどうすればよいですか?

macOS Catalina 10.15.6 を実行しています。私の質問は GNU ツールによるコンパイルに関するものなので、別の SE サイトの方が適しているかもしれません。その場合は、質問を閉じて別の場所で質問させていただきます。

ソフトウェア (つまり ) をコンパイルしようとしていますwine-6.0が、コンパイルには bison が必要ですが、 にはすでに実行可能ファイルがあります/usr/bin。ただし、プログラムをコンパイルするには bison のバージョンが 3.0 より大きい必要があり、 のバイナリは/usr/binバージョン 2.7.6 です。bison 3.7.6 をコンパイルし、新しい bison 3.7 バイナリを に移動するつもりでした/usr/binが、macOS のファイルシステム保護のため、 を置き換えることはできません/usr/bin/bison。ファイルシステム ロックを無効にするには、Mac をリカバリ モードで再起動する必要がありますが、現時点で実行を停止できない何かが開いています。

を使用すると./configure --enable-win64次のエラーが発生します。

checking for bison... bison
checking whether bison is recent enough... no
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.

これを修正するには、変更すればうまくいくと思いましたPATH。bison 3.7.6 バイナリをに移動して、以前も/usr/local/bin/bison実行しましたが、うまくいきませんでした。まだ、bison >3.0 がないというエラーが表示されます (bison をいじろうとした前と同じエラーです)。export PATH=/usr/local/bin:$PATH./configure

checking for bison... bison
checking whether bison is recent enough... no
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.

奇妙なことに、bison を実行しようとすると正しいバイナリが使用されるのです。

$ bison -V
bison (GNU Bison) 3.7.6
Written by Robert Corbett and Richard Stallman.
...

$ which bison
/usr/local/bin/bison

ファイルを少しいじってみましたconfigure.acが、問題は、自分が何をしているのかよくわからないことです。構成ファイルを編集して再実行しautoconf、使用して./configureも、まだ機能しません。結局のところ、私の質問は、./configure正しい bison バイナリを使用していることを確認するにはどうすればよいかということです。

答え1

私の問題はbisonインストールが悪かったことです。

私は、brew にすべての配置場所を決定させるのではなく、を使用してソースから bison をコンパイルし、wine コンパイル用の makefile を生成するconfigure --prefix=/usr/localときに PATH が正しいことを確認してconfigure、動作しました。

この問題は、Wine の configure スクリプトが、バージョンを確認するために空のファイルで Bison を実行したときの終了コードをチェックするだけだったために発生しました。インストールが壊れていたために bison が失敗したため、エラー終了コードが返され、configure スクリプトは bison のバージョンが不十分であると認識しました。

関連情報