Скажите скрипту configure, чтобы он использовал относительный путь для --datarootdir - PullRequest
7 голосов
/ 11 марта 2012

Я использовал GNU autoconf для генерации скрипта конфигурирования для моей программы, которую я сейчас пытаюсь кросс-компилировать для Windows.

В Linux, чтобы изменить расположение файлов данных, которые я предоставляю--datarootdir=/blah, который работает нормально.Однако в Windows путь моего приложения не будет известен до времени выполнения (так как пользователь может установить его в любом месте.) Поэтому я хочу установить каталог данных в качестве текущего каталога, где бы он ни находился во время приложения

К сожалению, передача --datarootdir=. не работает:

configure: error: expected an absolute directory name for --datarootdir: .

Как сообщить Autoconf / configure, что вы хотите путь относительнотекущий каталог во время выполнения?

Ответы [ 2 ]

3 голосов
/ 11 марта 2012

Я думаю, что нашел частичное решение для этого.Кажется, --datarootdir используется для управления тем, куда установлены файлы , так что это должен быть абсолютный путь для выгоды make install.Однако это может быть переопределено во время компиляции:

make datadir="."

Таким образом, во время компиляции код думает, что $(datadir) это "."но при запуске make install файлы по-прежнему размещаются по абсолютному пути, указанному в ./configure --datarootdir=...

1 голос
/ 12 марта 2012

Просто дайте ему абсолютный путь, равный текущему рабочему каталогу:

./configure --datarootdir=$PWD
...