Как можно изменить ./configure для использования определенного двоичного файла вместо /usr/bin?

Как можно изменить ./configure для использования определенного двоичного файла вместо /usr/bin?

Работает на 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и делал это export PATH=/usr/local/bin:$PATHраньше ./configure, но это не сработало; по-прежнему выдает ошибку об отсутствии bison > 3.0 (та же ошибка, что и до того, как я попытался поиграться с bison):

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установка была неудачной.

Я скомпилировал bison из исходников, configure --prefix=/usr/localвместо того чтобы позволить brew решать, куда все поместить, а затем убедился, что PATH указан правильно, когда использовал его configureдля генерации make-файла для компиляции Wine, и это сработало.

Проблема возникла из-за того, что скрипт конфигурации Wine просто проверял код выхода запуска Bison на пустом файле, чтобы проверить версию. Поскольку Bison терпел неудачу из-за сломанной установки, он выдавал код выхода с ошибкой, заставляя скрипт конфигурации считать, что Bison — недостаточная версия.

Связанный контент