11.1.5 Сборка для других платформ

Опция --target переключает rpmbuild на сборку для платформы, отличной от текущей. Необходимо задать идентификатор платформы:

rpmbuild -bi --target i486-redhat-linux

Базовый формат - процессор-вендор-операционная_система. Например, строка i686-redhat-linux задает сборку для процессора i686, операционной системы Red Hat Linux. Опция --target задает архитектуру на время сборки данного пакета. Это означает, что на низком уровне --target перекрывает значения некоторых макросов, таких как %_target, %_target_arch, и %_target_os . Однако, задания процессорной архитектуры недостаточно. Мы, на самом деле, не можем собрать исполняемый файл PowerPC на процессоре Intel без кросс-компилятора, то есть такого компилятора, который умеет собирать бинарные модули для целевой платформы на другой платформе.

Если попробовать собрать ПО, использующее конфигурирующие средства в стиле GNU для конфигурации сборки, платформа под --target будет игнорирована. Например, если пытаться собрать пакет jikes с целью сборки ppc-ibm-aix, мы увидим игнорирование цели, так как система
configure обнаружит, что сборка происходит на Linux и процессоре i686 :

$ rpmbuild -bc --target ppc-ibm-aix
/usr/src/redhat/SPECS/jikes.spec

Building target platforms: ppc-ibm-aix

Building for target ppc-ibm-aix

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.94955

+ umask 022

+ cd /usr/src/redhat/BUILD

+ LANG=C

+ export LANG

+ cd /usr/src/redhat/BUILD

+ rm -rf jikes-1.17

+ /usr/bin/gzip -dc /usr/src/redhat/SOURCES/jikes-1.17.tar.gz

+ tar -xf -

+ STATUS=0

+ '[' 0 -ne 0 ']'

+ cd jikes-1.17

++ /usr/bin/id -u

+ '[' 500 = 0 ']'

++ /usr/bin/id -u

+ '[' 500 = 0 ']'

+ /bin/chmod -Rf a+rX,g-w,o-w .

+ exit 0

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.15710

+ umask 022

+ cd /usr/src/redhat/BUILD

+ cd jikes-1.17

+ LANG=C

+ export LANG

+ ./configure CXXFLAGS=-O3 --prefix=/tmp/jikesrpm/usr

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for gawk... gawk

checking whether make sets ${MAKE}... yes

checking whether to enable maintainer-specific portions of Makefiles... no

checking build system type... i686-pc-linux-gnu

checking host system type... i686-pc-linux-gnu

checking for g++... g++

Как можно видеть из сокращенного листинга, сборка начинается под заданную платформу, но скрипт configure быстро перезадает архитектуру под текущую платформу.

Далее - Опции для работы с tar-архивами
Назад - Очистка
Содержание