кросс-компиляция yuma123 с использованием автоинструментов для цели MIPS - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь выполнить кросс-компиляцию пакета с открытым исходным кодом yuma123 в системе разработки Ubuntu 18.04 для цели MIPS, где yuma123 использует Autotools и разделяемые библиотеки.

Я использую каталог INSTALL_PREFIX=/tmp/yuma123 в качестве промежуточной области для файлов, которые необходимо скопировать в целевой объект MIPS.

Код (кросс) компилируется и связывается без ошибок, используя:

autoreconf -i -f
./configure ...
make

Однако, как мне установить $INSTALL_PREFIX?

Должен ли я указать --prefix= опции для ./configure следующим образом:

./configure \
    --target=mipsel-buildroot-linux-gnu \
    --host=mipsel-buildroot-linux-gnu \
    --build=x86_64-unknown-linux-gnu \
    --prefix=$INSTALL_PREFIX/usr \
    --sysconfdir=$INSTALL_PREFIX/etc \
    --localstatedir=$LOCALSTATEDIR \
    --program-prefix=""

или я должен указать DESTDIR=, когда я sudo make install следующим образом:

sudo make DESTDIR=$INSTALL_PREFIX install

Что мне нужно установить выше, чтобы libtool правильно обрабатывал каталог $INSTALL_PREFIX для разделяемых библиотек при кросс-компиляции таким способом?

1 Ответ

0 голосов
/ 12 марта 2019

Однако, как мне установить на $INSTALL_PREFIX?

Должен ли я указать некоторые --prefix= опции для ./configure

[...]

или я должен указать DESTDIR=, когда я sudo make install [?]

Вы должны использовать DESTDIR для вашего варианта использования, хотя на практике возможно, чтовы можете обойтись без использования --prefix.

Опция --prefix передает префикс предполагаемого постоянного места установки в Autotools.При некоторых обстоятельствах этот путь или производные от него пути могут в конечном итоге быть включены во встроенные двоичные файлы (RPATH, местоположения файла конфигурации, и т. Д. .) Или во встроенную документацию.Это особенно верно, если вы используете libtool.Это, очевидно, нежелательно, если префикс не отражает того, где вы собираетесь хранить файлы в целевой системе.

DESTDIR, с другой стороны, предназначен для точно для вашей целиопишите: установка в промежуточную область или альтернативный корень.Это то, что обычно используют сборщики пакетов, хотя я подозреваю, что альтернативный корневой угол был тем, который первоначально вдохновил объект.Также обратите внимание, что если вы устанавливаете в промежуточную область, вам, вероятно, не нужно использовать от sudo до make install.

...