Проблема в том, что вы используете встроенную копию AIX make
, и она не поддерживает параметр командной строки -C
.Эта опция доступна в GNU make .
Если вы запускаете make -v
и не видите вывод, подобный следующему, то вы не используете GNU make:
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
Запустите команду which make
, и она вернет либо /usr/bin/make
, либо /opt/freeware/bin/make
(или аналогичный путь вне /usr/bin
):
Если она вернет /usr/bin/make
, тогдау вас не установлена GNU make в вашей системе, и вам нужно будет один из нескольких руководств, чтобы установить его в AIX.
Если он возвращает /opt/freeware/bin/make
, значит, у вас установлен GNU make, но это не отражено в $PATH
.Вы можете временно добавить его в свой путь во время компиляции Ruby, выполнив команду export PATH=/opt/freeware/bin:$PATH
перед выполнением команды make
.
Обновление:
Я бы посоветовал вам открыть отдельный вопрос для вашей текущей проблемы сборки, поскольку первоначальный вопрос был о флаге -C
для make
, не работающем в AIX, и теперь у вас есть отдельный вопрос о запуске GNU make сСовсем другой набор проблем и возможных решений.
Тем не менее, возможно, вы сможете решить свою проблему, начав заново и выполнив ./configure LIBTOOL='/usr/bin/libtool --tag=CC'
(или любой другой путь к libtool
).Это основано на следующих сообщениях:
libtool: compile: unable to infer tagged configuration
libtool: compile: specify a tag with `--tag'
Если это не сработает, вам, вероятно, придется отредактировать Makefile
, отыскивая конкретные вызовы libtool
и добавляя --tag=CC
один за другим, пока вы не сможете выйти за пределы этих ошибок.
Оба решения предполагают, что единственным компилируемым кодом является C. Насколько мне известно, все в MRI, которое должно быть скомпилировано, написано наC, но если что-то написано на C ++, то для вызовов libtool
потребуется --tag=CXX
.Вы можете прочитать больше о тегах здесь .